現代 JavaScript 程式設計教學:使用變數 (Variable)

【分享本文】
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

    宣告變數 (Variables)

    變數 (variables) 是程式語言中用來操作資料 (data) 的一種特性,變數就像是資料的標籤,讓我們可以在程式中存取資料。如下例:

    var x = 123;
    

    我們宣告一個變數 x 並對其賦值,其資料為 123 (數字)。

    在 ECMAScript 5 以前,JavaScript 只有 var 一種宣告變數的方式,在 ECMAScript 6 以後,新增 letconst 兩種宣告變數的方式:

    • var :函式內可見或全域可見
    • (新) let :區塊內局部可見
    • (新) const :宣告常數

    const 比較好理解,就是不會更動的變數 (immutable variable),或稱為常數 (constant);使用 const 定義變數的好處在於讓 Babel 協助我們檢查是否不小心修改到某個常數,使用 var 不會進行這項檢查。因此,如果可以的話,應該儘量使用 const 取代 var

    letvar 的差別在於 (1) 使用 let 宣告的識別字不可重定義,(2) let 以區塊 (block) 界定識別字的範疇 (scope)。原先以 var 宣告的識別字可重新定義且是全域範疇或函式範疇。

    以下是一個全域範疇的實例:

    for (var i = 0; i < 10; i++) {}
    
    // i is still available after the loop.
    console.log(i);
    

    這種情形在大部分語言都不會發生,卻是 ECMAScript 5 的特性。而 let 則改善了這項特性:

    for (let i = 0; i < 10; i++) {}
    
    // i is undefined.
    console.log(i);
    

    這時,i 是未定義的 (undefined),這比較符合大部分程式語言的習慣。在大部分的情形下,使用 let 會比 var 來得好。

    識別字 (Identifier)

    變數名稱是為了在程式中建立新的識別字 (identifier),這些識別字在程式中原本沒什麼意義,透過宣告變數賦予其意義。其命名規則如下:

    • 以英文字母、錢字號 ($)、底線 (_) 開頭
    • 包含英文字母、錢字號 ($)、底線 (_)、數字
    • 可用萬國碼字母,但實務上宜避免
    • 不可用保留字 (keywords)

    在大部分的情形下,我們不會用錢字號 ($) 來命名變數,不過,錢字號的確是合法的變數名稱。像 jQuery 就充分利用此一特性來減少命名空間 (namespace) 的汙染。

    一般來說,變數有以下數種風格:

    • PascalCase:類別和方法名稱都以大寫開頭
    • camelCase:除類別名稱外,大部分以小寫開頭
    • snake_case:大部分名稱皆小寫

    ECMAScript 不限制特定風格,在 JavaScript 社群以 camel case 較受歡迎,因為是仿 Java 的風格。

    保留字 (Keyword)

    保留字 (keyword) 在程式碼中具有特殊意義,不能拿來做為識別字。這裡列出 ECMAScript (JavaScript) 目前的保留字;這裡則列出未來可能會用到的保留字,同樣也不該使用。保留字不用刻意去記,因為學習程式的過程中自然會用到這些語法,而且編輯器都會幫我們用語法高亮標示出來。

    【分享本文】
    Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email
    【追蹤新文章】
    Facebook Twitter Plurk