js自動加分號的原則

最近在重看js高級程序設計。
每一遍讀總是有不同的收獲。

js包容性很高。
會在你忘了加分號的情況下幫你加上。
那自動添加分號的原則呢?

我個人理解。
在缺少分號的時候,js會把空格和換行符、注釋刪掉,變成一行。
如果這一行js可以執行。那么它就是一行。
如果不能執行。他就在原來換行符的地方給你補上分號。

比如

var a=1
var b=2

這一段代碼,js執行不了。就在1后面加分號。

再比如:

var a
=
3

這一段代碼,刪掉空格和換行符、注釋后,可以執行。
所以。js就編譯為var a=3;
與上面例子類似的是:

a = b
(c + d).toString()

會被解析為a = b(c + d).toString()

有沒有特殊情況呢?

有 return break continue;
這三個

如果寫成:

return 
20

會被編譯成
return;20

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容