JS 核心篇 (10) ASI 自動插入分號
ASI 機制說明
1 | function callName() { |
上面這段程式會回傳 undefined,因為受到 ASI 自動插入分號機制影響。
ASI 自動插入分號機制說明:
js 的每段語句都應該加入分號結尾,若沒加入分號,則會受到ASI 自動插入分號機制影響。以上面程式為例,實際上運作是長這樣:
1 | function callName() { |
因為 return 後方沒有分號,js 就自動補上分號,導致結果是 undefined。
再看一個例子:
1 | if (1 > 10) a = 1 |
上面語句受到 asi 機制影響,在句尾都自動補上分號。
不會發生 ASI 的規則
- 新的一行是
(
、[
、/
開始 (容易出錯的地方)
1 | var a = 1 |
- 新的一行以
+
、-
、*
、%
作開始 (會影響執行結果)
1 | var a = 2 |
- 新的一行以
,
、.
作開始 (需注意執行結果)
1 | var a = 2 |
4.