《JavaScript權威指南(第6版)》——第2章詞法結構總結
阿新 • • 發佈:2018-12-30
一、基本概念
- 直接量:就是程式中直接使用的資料值。
// 如
12;
- 識別符號(就是用來命名的):只能以字母、下劃線(_)、美元符號($)開頭,後可接數字、下劃線、美元符號、字母。
- 分號(分隔符)可選
這意味著可以省略所有語句的分隔符(;)嗎?當然不是
注意:
- 在js中,如果語句各自獨佔一行,通常可以省略語句之間的分號(程式結尾或右花括號"}"之前的分號也可以省略);
- 只有在缺少了分號就無法正確解析程式碼的時候,js在會填充分號,即如果當前語句和隨後的非空格字元不能當成一個整體來解析的話,js就在當前語句行結束處填充分號。
var a
a
=
3
console.log(a)
js會將其解析為:
var a; a = 3; console.log(a);
- 如果當前語句和下一行語句無法合併解析,js則在第一行後填充分號,這是通用規則。
但是這條規則有兩個例外:
i. return、break、continue後緊跟換行,js會在換行處填補分號。同時這種錯誤很難排查。
return
true
// 會解析成如下語句
return; true;
ii. 涉及 “++” 和 “–” 運算子時,如果它和表示式不在同一行,則行尾將新增分號,同時 “++” 或 “–” 將
作為下一行程式碼的字首。
x
++
y
// 將解析為
x; ++y;
**總結:**完整的 js 語句可以省略分號(;)。