自動分號插入的例子

2018-06-16 14:58 更新

源代碼:

{ 1 2 } 3

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

{ 1 2 } 3

 它還是不符合 ECMAScript 文法,但是它會被自動分號插入成為一下形式:

{ 1  ;2 ;} 3;

 這符合 ECMAScript 文法。

 源代碼:

for (a; b )

 不符合 ECMAScript 文法,并且不會被自動分號插入所更改,因為 for 語句頭部需要分號。自動分號插入從來不會插入成 for 語句頭部的兩個分號之一。

 源代碼:

return a + b

 會被自動分號插入轉(zhuǎn)換成以下形式:

return; a + b;

 表達式 a + b 不會被當(dāng)做是 return 語句要返回的值,因為有一個 LineTerminator 分割了它和 return token。

 源代碼:

a = b ++c

 會被自動分號插入轉(zhuǎn)換成以下形式:

a = b; ++c;

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

 源代碼:

if (a > b) else c = d

 它不符合 ECMAScript 文法 ,else token 前面不會被自動分號插入改變,即使沒有文法產(chǎn)生式適用這一位置,因為自動插入分號后會解析成空語句。

 源代碼:

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

 它不會被自動分號插入改變,因為第二行開始位置的括號表達式可以解釋成函數(shù)調(diào)用的參數(shù)列表:

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

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號