最近在重看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