否則它將報告一個錯誤。因為JS引擎會把這里的函數(shù)當(dāng)作函數(shù)聲明,函數(shù)聲明不允許沒有函數(shù)名,所以會向匿名函數(shù)報告錯誤。匿名函數(shù)只能以表達(dá)式的形式存在。例如,這里的匿名函數(shù)是一個表達(dá)式,作為setTimeout的參數(shù),這是允許的。或者:將一個匿名函數(shù)賦給一個變量,該變量是一個VAR語句,在該語句中匿名函數(shù)充當(dāng)函數(shù)表達(dá)式。如果函數(shù)有名字呢?不會報告錯誤,但語義會更改。例如,控制臺將輸出“1”。原因是JS引擎會認(rèn)為前面的函數(shù)是一個函數(shù)聲明的語句,而下面的(1)是一個單獨(dú)的語句,所以它會在控制臺上執(zhí)行下面的語句并輸出1。它實際上相當(dāng)于:JS圓括號有幾個不同的函數(shù),其中之一是表示表達(dá)式,而不是圓括號中的語句。在本例中,第一對括號告訴JS引擎匿名函數(shù)是函數(shù)表達(dá)式,而不是函數(shù)聲明語句。因此,添加此括號后,不會報告錯誤。為了實現(xiàn)“告訴JS引擎這個匿名函數(shù)是一個表達(dá)式”的目的,還有其他幾種編寫方法。你可以把第一對圓括號放在外面。例如,在匿名函數(shù)前面添加一元運(yùn)算符。其他答案也提到了這一點(diǎn):等等。
大括號中可以有括號和圓括號。括號中可以有括號。它們不能顛倒,所以不能加在括號里
當(dāng)前文章:混合運(yùn)算加小括號中括號題JS中給一段代碼加上括號有什么作用?-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.chinadenli.net/article48/igjep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、靜態(tài)網(wǎng)站、移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容