自動(dòng)分號(hào)插入的例子

2018-06-16 14:58 更新

源代碼:

{ 1 2 } 3

 即使在自動(dòng)分號(hào)插入規(guī)則下,它也不符合 ECMAScript 文法。做為對(duì)比,源代碼:

{ 1 2 } 3

 它還是不符合 ECMAScript 文法,但是它會(huì)被自動(dòng)分號(hào)插入成為一下形式:

{ 1  ;2 ;} 3;

 這符合 ECMAScript 文法。

 源代碼:

for (a; b )

 不符合 ECMAScript 文法,并且不會(huì)被自動(dòng)分號(hào)插入所更改,因?yàn)?for 語(yǔ)句頭部需要分號(hào)。自動(dòng)分號(hào)插入從來(lái)不會(huì)插入成 for 語(yǔ)句頭部的兩個(gè)分號(hào)之一。

 源代碼:

return a + b

 會(huì)被自動(dòng)分號(hào)插入轉(zhuǎn)換成以下形式:

return; a + b;

 表達(dá)式 a + b 不會(huì)被當(dāng)做是 return 語(yǔ)句要返回的值,因?yàn)橛幸粋€(gè) LineTerminator 分割了它和 return token。

 源代碼:

a = b ++c

 會(huì)被自動(dòng)分號(hào)插入轉(zhuǎn)換成以下形式:

a = b; ++c;

 ++token 不會(huì)被當(dāng)做應(yīng)用于變量 b 的后綴運(yùn)算符,因?yàn)?b 和 ++ 之間出現(xiàn)了一個(gè) LineTerminator。

 源代碼:

if (a > b) else c = d

 它不符合 ECMAScript 文法 ,else token 前面不會(huì)被自動(dòng)分號(hào)插入改變,即使沒(méi)有文法產(chǎn)生式適用這一位置,因?yàn)樽詣?dòng)插入分號(hào)后會(huì)解析成空語(yǔ)句。

 源代碼:

a = b + c (d + e).print()

 它不會(huì)被自動(dòng)分號(hào)插入改變,因?yàn)榈诙虚_(kāi)始位置的括號(hào)表達(dá)式可以解釋成函數(shù)調(diào)用的參數(shù)列表:

a = b + c(d + e).print()

 在賦值語(yǔ)句必須用左括號(hào)開(kāi)頭的情況下,程序員在前面語(yǔ)句的結(jié)束位置明確的提供一個(gè)分號(hào)是個(gè)好主意,而不是依賴于自動(dòng)分號(hào)插入。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)