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

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

js中()是什么?作用是什么?

js中()是什么?作用是什么?

猛跑小豬 2019-03-07 18:14:36
在js中常使用立即執(zhí)行表達式,如:(function(name){console.log(name)})("123")// 輸出"123"雖然這種用法見得很多,但有點迷糊(function(){})中的()是什么?是一個操作符嗎?它的作用又是什么?
查看完整描述

5 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

謝謝各位的認真解答,綜合各位的答案,(function(){})中括號就是括號,它的作用是讓瀏覽器把()里的內容當做表達式去解析,如果不用括號包起來的話,瀏覽器就會把function(){}當做是函數聲明,但是函數聲明沒有名字,于是就會報錯。

提到下面這幾種方法也可達到立即執(zhí)行函數的效果:


+function(name){console.log(name)}("123")


-function(name){console.log(name)}("123")


!function(name){console.log(name)}("123")


0 || function(name){console.log(name)}("123")

其中的+,-,!,0||等的作用應該也是讓瀏覽器把function(){}當成表達式,而不是函數聲明去處理。


再次感謝!


查看完整回答
反對 回復 2019-03-18
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

(function fun(a,b,c)

{

    //…

})(1,2,3)

這里的括號(1,2,3)中的參數對應的是前面函數的參數,當第一個括號的代碼符合表達式規(guī)則時,前面的代碼會被作為函數表達式來執(zhí)行,所以最好在第一個函數表達式前面加上“;”分隔開,否則會報前一個表達式的值不是函數的錯誤。


如:alert(1)(function(){})(),此時alert(1)先執(zhí)行,由于符合立即執(zhí)行的函數表達式規(guī)則,所以alert(1)的返回值會被作為函數,同時將后一個括號中的值作為參數傳入,但alert(1)返回的是undefined,所以會報錯。解決辦法就是在alert(1)后面加上“;”或者“,”,將其拆分為兩個表達式。


立即執(zhí)行還可以用


(function fun(a,b,c)

{

    //…

}(1,2,3))


!function fun(a,b,c)

{

    //…

}(1,2,3)


void function fun(a,b,c)

{

    //…

}(1,2,3)


查看完整回答
反對 回復 2019-03-18
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

調用運算符:跟在任何產生一個函數值的表達式之后的一對圓括號()
表達式內可包含零個或多個用逗號隔開的表達式。 每個表達式產生一個參數值

在 《JavaScript 語言精粹》里面,表示每個函數在創(chuàng)建時會附加兩個隱藏屬性,函數的上下文和實現函數行為的代碼(JavaScript創(chuàng)建一個函數對象時,會給給對象設置一個“調用”屬性)。當JavaScript調用一個函數時,可以理解為調用此函數的“調用”屬性。 可以跟上面的 () 聯系在一起。


查看完整回答
反對 回復 2019-03-18
  • 5 回答
  • 0 關注
  • 1602 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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