區分大小寫
JavaScript中的一切(變量、函數名、操作符)都區分大小寫。例如,變量名itbsl和變量名ITbsl是兩個不同的變量。
標識符
所謂標識符,就是指變量、函數、屬性的名字,或者函數的參數。標識符可以是按照下列格式規則組合起來的一或多個字符:
- 第一字符必須是一個字母、下划線(_)、或一個美元符號($);
- 其它字符可以是字母、下划線、美元符號或數字;
注意:
不能把關鍵字、保留字、true、false和null用作標識符。
如何避免令人難堪的命名錯誤?
- 選擇有意義的名稱
標識符名稱如_、m、s、r或bu對你來說也許是有意義的,但在開發過程中盡量避免。隨着時間的推移,你可能會忘記這些變量的含義,如果使用見名知義的變量如firstName, lastName這樣的變量名,你的代碼將更容易理解,並且標識符名稱建議使用駝峰法命名。 - 除非有充分的理由,否則不要使用以_或$打頭的變量名
以$打頭的變量名通常保留用於JavaScript庫;有些作者根據各種約定使用以_打頭的變量名。然而,建議除非有充分的理由(具體是什么理由你自己知道),否則不要使用這兩種變量名。
關鍵字和保留字
ECMA-262描述了一組具有特定用途的關鍵字,這些關鍵字可用於表示控制語句的開始或結束,或者用於執行特定操作等。按照規則,關鍵字也是語言保留的,不能用作標識符。以下就是ECMAScript的全部關鍵字:
break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger function this with
default if throw
delete in try
ECMA-262還描述了另外一組不能用作標識符的保留字。盡管保留字在這門語言中還沒有任何特定的用途,但他們有可能在將來被用作關鍵字。一下是EMCA-262第三版定義的全部保留字:
abstract enum int short
boolean export interface static
byte extends long super
char final native synchronized
class float package throws
const goto private transient
debugger implements protected volatile
double import public
第5版把在非嚴格模式下運行時的保留字縮減為下列這些:
class enum extends super
const export import
在嚴格模式下,第5版還對以下保留字加了限制:
implements package public
interface private static
let protected yield
除了上面列出的關鍵字和保留字,ECMA-262第5版對eval和arguments還施加了限制。在嚴格模式下,這兩個名字也不能作為標識符或屬性名,否則會拋出錯誤。
建議:
無論是在嚴格模式下還是在非嚴格模式下,都不要在定義變量名、函數名或者屬性名時使用上面列舉出的保留字,以免入坑。
