第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

catch子句的語句為什么在finally子句執(zhí)行完成又執(zhí)行?

catch子句的語句為什么在finally子句執(zhí)行完成又執(zhí)行?

qq_遁去的一_1 2018-09-04 13:18:21
菜鳥一枚,感謝各位:高程3上說“只要代碼中包含 finally 子句,那么無論 try 還是 catch 語句塊 中的 return 語句都將被忽略。”但是我做的一個測試出現(xiàn)了這樣的結(jié)果:var example = function() {  try {    window.someNonexistentFunction();   } catch (error) {    console.log(error.name);    console.log(error.message);    return 1;   } finally {    console.log('everything is over');   } }; example();Firebug中的輸出:最后為什么會輸出1?
查看完整描述

1 回答

?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

這里的忽略不是形式上的忽略,而指得是結(jié)果上的忽略,實際上其他分支上的return值是被最后的finally語句的return值覆蓋了。

如下,我在finally分支添加了一句“return 0”,則結(jié)果是整個代碼塊返回了0:

https://img1.sycdn.imooc.com//5bc9c47a00019d4f03190231.jpg

而關(guān)于你的問題:“catch子句的語句為什么在finally子句執(zhí)行完成又執(zhí)行?”

這里理解偏差了,代碼執(zhí)行過程依然是先執(zhí)行catch,再執(zhí)行finally,只不過catch分支設(shè)置了函數(shù)的返回值,而finally沒設(shè)置,所以最后函數(shù)還是返回1。


查看完整回答
反對 回復(fù) 2018-10-19
  • 1 回答
  • 0 關(guān)注
  • 637 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號