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

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

javascript函數(shù)領先爆炸!句法

javascript函數(shù)領先爆炸!句法

翻翻過去那場雪 2019-09-19 09:49:03
我現(xiàn)在已經(jīng)在一些庫上看到了這種語法,我想知道它的好處是什么。(注意我很清楚閉包和代碼在做什么,我只關心語法差異)!function(){  // do stuff}();作為更常見的替代品(function(){  // do stuff})();用于自我調用匿名函數(shù)。我想知道一些事情。首先,允許頂級示例實際工作的是什么?為了使這個陳述在語法上正確,為什么必要的爆炸?我也被告知+有效,我相信其他一些代替!第二,有什么好處?我所能說的只是它節(jié)省了一個角色,但我無法想象吸引眾多采用者會帶來如此巨大的好處。我還缺少其他一些好處嗎?我可以看到的唯一其他差異是自調用函數(shù)的返回值,但在這兩個示例中,我們并不真正關心函數(shù)的返回值,因為它僅用于創(chuàng)建閉包。那么有人可以告訴我為什么人們可能會使用第一種語法嗎?
查看完整描述

3 回答

?
米脂

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

理想情況下,您應該能夠完成所有這些:


function(){

  // do stuff

}(); 

這意味著聲明匿名函數(shù)并執(zhí)行它。但由于JS語法的細節(jié),這不起作用。


實現(xiàn)這一目標的最短形式是使用一些表達式,例如UnaryExpression(以及CallExpression):


!function(){

  // do stuff

}(); 

或者為了好玩:


-function(){

  // do stuff

}(); 

要么:


+function(){

  // do stuff

}(); 

甚至:


~function(){

  // do stuff

  return 0;

}( );


查看完整回答
反對 回復 2019-09-19
?
當年話下

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

在Javascript中,一行開頭應該function是一個函數(shù)語句,看起來應該是這樣的


function doSomething() {

}

像一個自我調用的功能


function(){

  // do stuff

}();

不符合該形式(并且會在第一個打開的paren處導致語法錯誤,因為沒有函數(shù)名稱),因此括號用于描述匿名函數(shù)表達式。


(function(){

  // do stuff

})();

但是任何創(chuàng)建表達式的東西(與函數(shù)語句相反)都會這樣做,因此!。它告訴解釋器這不是函數(shù)聲明。除此之外,運算符優(yōu)先級指示在否定之前調用該函數(shù)。


我不知道這個慣例,但如果它變得普遍,它可能有助于提高可讀性。我的意思是,任何閱讀!function大塊代碼頂部的人都會期望自我調用,我們已經(jīng)習慣的方式在我們看到的情況下期望相同(function。除了我們將失去那些煩人的括號。我希望這是原因,而不是速度或字符數(shù)的節(jié)省


查看完整回答
反對 回復 2019-09-19
?
拉風的咖菲貓

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

除了已經(jīng)說過的東西,語法與!如果您編寫沒有分號的javascript,則非常有用:


var i = 1

!function(){

  console.log('ham')

}()


i = 2

(function(){

  console.log('cheese')

})()

第一個示例按預期輸出'ham',但第二個示例將拋出錯誤,因為i = 2語句由于以下括號而未終止。


同樣在連接的javascript文件中,如果前面的代碼缺少分號,則不必擔心。所以不需要共同的;(function(){})(); 確保你自己不會破壞。


我知道我的答案有點晚了,但我認為還沒有提到:)


查看完整回答
反對 回復 2019-09-19
  • 3 回答
  • 0 關注
  • 396 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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