課程
/前端開發
/JavaScript
/JavaScript深入淺出
!function(){'use strict';var obj = {x:1,x:2};}();
為什么返回true?
2015-08-29
源自:JavaScript深入淺出 3-4
正在回答
取反是優先級非常高的運算符。當瀏覽器掃描到"!"后,會去運算之后的語句,從而達到函數自執行的效果,等同于:(function(){console.log(1);}());這樣的自執行函數寫法。
而函數是一定有返回值的,只是沒有去獲取他。若函數里沒有寫return,就會默認返回一個值:undefined,獲取undefined,那么!function(){'use strict';var obj = {x:1,x:2};}(); 就是?!undefined 了,也就是true。
因為這個是個自執行函數,沒有返回值就會返回undefined,但是前面加了個!就是取反的意思,undefined取反就是true
舉報
由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-02-09
取反是優先級非常高的運算符。當瀏覽器掃描到"!"后,會去運算之后的語句,從而達到函數自執行的效果,等同于:(function(){console.log(1);}());這樣的自執行函數寫法。
而函數是一定有返回值的,只是沒有去獲取他。若函數里沒有寫return,就會默認返回一個值:undefined,獲取undefined,那么!function(){'use strict';var obj = {x:1,x:2};}(); 就是?!undefined 了,也就是true。
2015-12-18
因為這個是個自執行函數,沒有返回值就會返回undefined,但是前面加了個!就是取反的意思,undefined取反就是true