(function(){ alert("test"); }()) === (function(){ alert("test"); })(); 這兩個是不是等價的
標準的立即調(diào)用的函數(shù)寫法是:
(function(){})();
但是我看到還有這種寫法
(function(){}())
這兩種寫法等價嗎
標準的立即調(diào)用的函數(shù)寫法是:
(function(){})();
但是我看到還有這種寫法
(function(){}())
這兩種寫法等價嗎
2015-09-25
舉報
2015-11-17
javascript不存在相等的兩個對象,比如[]===[],{}==={}均為false,而函數(shù)的比較最為復雜,樓主寫的兩個自執(zhí)行函數(shù)均無返回值,瀏覽器便取默認值(不是undefined就是null了,實際上undefined==null)去比較,自然相等;
2018-07-07
這里的函數(shù)執(zhí)行,比較其實比較的是執(zhí)行后的結(jié)果,自然相等。如果不執(zhí)行,兩個引用類型的值是不相等(內(nèi)存地址不相同。)
2015-11-17
好像沒回答到正題上(===。。。拜托),函數(shù)自執(zhí)行的方法太多了,但絕對沒有完全等價的;關(guān)于函數(shù)自執(zhí)行Xfunction(){}();其中的X你只要取任何使該語句不違法的值都可以達到函數(shù)自執(zhí)行(語言就是這么規(guī)定的,別問為什么),比如:1?function(){document.title='hello word'}:null;
2015-10-16
實驗了 效果是直等于 返回值true
2015-09-28
(function(){ alert("test1"); }());
(function(){ alert("test2"); })();
alert((function(){ alert("test1"); }())===(function(){ alert("test2"); })());
瀏覽器中執(zhí)行以上代碼結(jié)果:test1,test2,test1,test2,true。
個人認為,執(zhí)行效果等價,但“===”判斷應(yīng)為錯才對啊?