浅谈JS中中括号([])用法

来源:互联网 发布:上海译文 知乎 编辑:程序博客网 时间:2024/05/21 08:33
中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。

中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。
中括号运算符可以用纯数字为属性名。点运算符不能。
中括号运算符可以用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获取)      

总结:常量用点,变量就用中括号。
原创粉丝点击