1. 程式人生 > >JavaScript識別符號與關鍵字和保留字

JavaScript識別符號與關鍵字和保留字

區分大小寫

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

建議:

無論是在嚴格模式下還是在非嚴格模式下,都不要使用上面列舉出的保留字,以免入坑。