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

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

為什么function 前要加個!

!function(){

????var localData = "localData here";

????document.addEventListener('click',

????????function(){

????????????console.log(localData);

});

}();

正在回答

2 回答

這個問題老師回答過了...http://www.xianlaiwan.cn/qadetail/70621

不僅可以用!,還可以用+, -, ~都可以。

解釋器在解釋一個語句時,如果以function開頭,就會理解為函數聲明。

而前面加一個!可以讓解釋器理解為函數表達式,這樣就可以立即調用了。

例如:

!funciton() {

}();


而省略了!的話:

function() {

}();


就會理解為函數聲明,而函數聲明沒有名字會報錯。如果有函數名:

function f() {

}();


還是會報錯,因為function f(){}函數聲明會被前置,相當于:

function f(){}


(); // 這里報錯


3 回復 有任何疑惑可以回復我~
#1

chenzhicai 提問者

非常感謝!
2016-02-14 回復 有任何疑惑可以回復我~
#2

newBegining

請問為什么一開始的 function outer() var localval=30 return function(){ return localval } } var func=outer() func(); 請問這里面的 function(){ return localval } 為什么不用加函數名?這個算函數聲明嗎??
2016-05-08 回復 有任何疑惑可以回復我~
#3

FDU_XN 回復 newBegining

這個不是匿名函數的嗎
2016-05-20 回復 有任何疑惑可以回復我~

防止受到其他一些方法的影響!

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

舉報

0/150
提交
取消

為什么function 前要加個!

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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