亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Question

!function(){'use strict';var obj = {x:1,x:2};}();

為什么返回true?

正在回答

2 回答

取反是優先級非常高的運算符。當瀏覽器掃描到"!"后,會去運算之后的語句,從而達到函數自執行的效果,等同于:(function(){console.log(1);}());這樣的自執行函數寫法。

而函數是一定有返回值的,只是沒有去獲取他。若函數里沒有寫return,就會默認返回一個值:undefined,獲取undefined,那么!function(){'use strict';var obj = {x:1,x:2};}(); 就是?!undefined 了,也就是true。

4 回復 有任何疑惑可以回復我~

因為這個是個自執行函數,沒有返回值就會返回undefined,但是前面加了個!就是取反的意思,undefined取反就是true

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript深入淺出
  • 參與學習       281094    人
  • 解答問題       1054    個

由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握

進入課程
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號