`
zhouyrt
  • 浏览: 1126508 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Javascript中中括号“[]”的多义性

阅读更多

Javascript中括号有四种语义

语义1,声明数组

 

var ary = []; // 声明一个空数组
var ary = [1,3]; // 声明一个数组,同时赋初值

 

语义2,取数组成员

 

var ary = [1,2,3];
var item = ary[0];

 

语义3,定义对象成员 (可以不遵循标识符规则

 

var obj = {};

// 为obj添加一个属性name,name是合法的标识符,即也可以通过obj.name方式来定义
obj['name'] = 'jack'; 

// 为obj添加一个属性2a,2a不是合法的标识符(不能以数字开头),不能通过obj.2a来定义
obj['2a'] = 'test'; 


语义4,取对象成员

 

var obj = {name:'jack'};
obj['2a'] = 'test';

obj['name']; // --> jack
obj['2a']; // --> test (不能通过obj.2a获取)

 

 

 

 

 

 

 

6
6
分享到:
评论
3 楼 ywxowen999 2011-06-13  
一直对[]有很困惑,看完此贴算明白了。学习了。
2 楼 tangjikey 2011-04-24  
obj['2a'];不能访问的原因是:标识符不能以数字开头,不能是JavaScript中的保留关键字。
如果是
   var obj = {name:'jack'};  
   obj['age'] = 29;  
   obj['name']; // --> jack  
   obj['age']; //也可以用obj.age访问。
1 楼 wangxiaoxu 2011-01-24  
总结的不错,刚搞js的时候碰上了第四种情况,我想了一个上午才想明白

相关推荐

Global site tag (gtag.js) - Google Analytics