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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

javascript 的 "!function" 是什么意思?

javascript 的 "!function" 是什么意思?

陪伴而非守候 2019-02-08 16:07:42
javascript 的 "!function" 是什么意思?
查看完整描述

2 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

!function跟(function(){... })();函數(shù)意義相同,叫做立即運(yùn)行的匿名函數(shù)(也叫立即調(diào)用函數(shù))。

js中可以這樣創(chuàng)建一個(gè)匿名函數(shù)

(function(){do something...})()

//或

(function(){do something...}())

匿名函數(shù)后面的小括號(hào)()是為了讓匿名函數(shù)立即執(zhí)行,其實(shí)就是一個(gè)函數(shù)調(diào)用。

這樣寫會(huì)報(bào)錯(cuò):

function(){alert(1)}()

因?yàn)閒unction前面沒有(或者! ~之類的運(yùn)算符,js解析器會(huì)試圖將關(guān)鍵字function解析成函數(shù)聲明語句,而不是函數(shù)定義表達(dá)式。

作為組運(yùn)算符,小括號(hào)()會(huì)將其內(nèi)部的表達(dá)式當(dāng)成一個(gè)整體,然后返回結(jié)果,所以定義一個(gè)匿名函數(shù)正確的格式就是用小括號(hào)將函數(shù)體括起來。

同樣的! ~ + -等運(yùn)算符也有同樣的效果,這是因?yàn)槟涿瘮?shù)也是一種值,這些運(yùn)算符會(huì)將后面的函數(shù)體當(dāng)成一個(gè)整體,先對(duì)匿名函數(shù)進(jìn)行求值,然后在對(duì)結(jié)果進(jìn)行運(yùn)算。

不過這些運(yùn)算符雖然能夠達(dá)到讓匿名函數(shù)立即執(zhí)行的目的,但是要小心他們是有副作用的,比如:

!function() {return 1}()//false

~function() {return 1}()//-2

-function() {return false}()//0

-function() {return false}()//0

沒錯(cuò),他們會(huì)對(duì)函數(shù)的返回值進(jìn)行運(yùn)算,這樣可能會(huì)導(dǎo)致最終的結(jié)果和你想要的結(jié)果不一樣。當(dāng)然,對(duì)于那些沒有返回值的函數(shù)來說,當(dāng)然是沒有什么影響了。

擴(kuò)展資料:


匿名函數(shù)的調(diào)用:

var abc=function(x,y){

return x+y;

}

alert(abc(2,3)); // "5"

上面的操作其實(shí)就等于換個(gè)方式去定義函數(shù),這種用法是我們比較頻繁遇到的。

例如我們?cè)谠O(shè)定一個(gè)DOM元素事件處理函數(shù)的時(shí)候,我們通常都不會(huì)為他們定名字,而是賦予它的對(duì)應(yīng)事件引用一個(gè)匿名函數(shù)。

使用()將匿名函數(shù)括起來,然后后面再加一對(duì)小括號(hào)(包含參數(shù)列表)。

alert((new Function("x","y","return x*y;"))(2,3));// "6"






查看完整回答
反對(duì) 回復(fù) 2019-03-09
?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

嘆號(hào)后面跟函數(shù)!function
和加號(hào)后面跟函數(shù)+function
都是跟(function(){})();這個(gè)函數(shù)是一個(gè)意思,都是告訴瀏覽器自動(dòng)運(yùn)行這個(gè)匿名函數(shù)的,因?yàn)?+()這些符號(hào)的運(yùn)算符是最高的,所以會(huì)先運(yùn)行它們后面的函數(shù)

查看完整回答
反對(duì) 回復(fù) 2019-03-09
  • 2 回答
  • 0 關(guān)注
  • 463 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)