1. 程式人生 > >淺談JS中中括號([])用法

淺談JS中中括號([])用法

中括號運算子總是能代替點運算子。但點運算子卻不一定能全部代替中括號運算子。

中括號運算子可以用字串變數的內容作為屬性名。點運算子不能。
中括號運算子可以用純數字為屬性名。點運算子不能。
中括號運算子可以用js的關鍵字和保留字作為屬性名。點運算子不能。
    例一:
             /**
      * 在JavaScript裡面 . 可以理解成 的
      * 下面的例子中,a.b表示物件a的屬性b,既可以設定也可以讀取
      * object[key]=>key為常量時,object[key]等價於object.key,例如:a.b == a['b']
      * 特殊的,object[key]=>key為變數時,只能用中括號形式
     */

    var a = {};
    // a.b = 1;
    a['b'] = 1;
    c = a.b;
    // c = a['b'];
      alert(c); 
例二:
         var obj = {};  
    // 為obj新增一個屬性name,name是合法的識別符號,即也可以通過obj.name方式來定義
     obj['name'] = 'jack'; 
    // 為obj新增一個屬性2a,2a不是合法的識別符號(不能以數字開頭),不能通過obj.2a來定義
    obj['2a'] = 'test'; 
例三:
    var obj = {name:'jack'};
    obj['2a'] = 'test';
    obj['name']; // --> jack 
    obj['2a']; // --> test (不能通過obj.2a獲取)      

總結:常量用點,變數就用中括號。