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获取)

posted on 2011-03-08 13:11  snandy  阅读(3836)  评论(6编辑  收藏  举报