第三章 基本概念
3.1 語法
區分大小寫:ECMAScript 中的一切(變量、函數名和操作符)都區分大小寫。
標識符:標識符可以是按照下列格式規則組合起來的一或多個字符:
? 第一個字符必須是一個字母、下劃線(_)或一個美元符號($);
? 其他字符可以是字母、下劃線、美元符號或數字。
按照慣例,ECMAScript 標識符采用駝峰大小寫格式,也就是第一個字母小寫,剩下的每個單詞的首字母大寫。
不能把關鍵字、保留字、true、false 和null 用作標識符。
註釋:ECMAScript 使用C 風格的註釋,包括單行註釋和塊級註釋。單行註釋以兩個斜杠開頭,如下所示:
//單行註釋
塊級註釋以一個斜杠和一個星號(/*)開頭,以一個星號和一個斜杠(*/)結尾,如下所示:
/* * 這是一個多行 * (塊級)註釋 */
嚴格模式:ECMAScript 5 引入了嚴格模式(strict mode)的概念。嚴格模式是為JavaScript 定義了一種不同的解析與執行模型。在嚴格模式下,ECMAScript 3 中的一些不確定的行為將得到處理,而且對某些不安全的操作也會拋出錯誤。要在整個腳本中啟用嚴格模式,可以在頂部添加如下代碼:
"use strict";
在函數內部的上方包含這條編譯指示,也可以指定函數在嚴格模式下執行:
function doSomething(){ "use strict"; //函數體 }
語句:ECMAScript 中的語句以一個分號結尾;如果省略分號,則由解析器確定語句的結尾。雖然語句結尾的分號不是必需的,但我們建議任何時候都不要省略它。因為加上這個分號可以避免很多錯誤。
var sum = a + b // 即使沒有分號也是有效的語句——不推薦 var diff = a - b; // 有效的語句——推薦
可以使用C 風格的語法把多條語句組合到一個代碼塊中,即代碼塊以左花括號({)開頭,以右花括號(})結尾:
if (test){ test = false; alert(test); }
雖然條件控制語句(如if 語句)只在執行多條語句的情況下才要求使用代碼塊,但最佳實踐是始終在控制語句中使用代碼塊——即使代碼塊中只有一條語句,例如:
if (test) alert(test); // 有效但容易出錯,不要使用 if (test){ // 推薦使用 alert(test); }
3.2 關鍵字和保留字
關鍵字也是語言保留的,不能用作標識符。以下就是ECMAScript的全部關鍵字(帶*號上標的是第5 版新增的關鍵字):
ECMA-262 還描述了另外一組不能用作標識符的保留字。盡管保留字在這門語言中還沒有任何特定的用途,但它們有可能在將來被用作關鍵字。以下是ECMA-262 第3 版定義的全部保留字:
let 和yield 是第5 版新增的保留字;其他保留字都是第3 版定義的。為了最大程度地保證兼容性,建議讀者將第3 版定義的保留字外加let 和yield 作為編程時的參考。
一般來說,最好都不要使用關鍵字和保留字作為標識符和屬性名,以便與將來的ECMAScript 版本兼容。除了上面列出的保留字和關鍵字,ECMA-262 第5 版對eval 和arguments 還施加了限制。在嚴格模式下,這兩個名字也不能作為標識符或屬性名,否則會拋出錯誤。
3.3 變量
第三章 基本概念