比如:
var a = {};
有时候要用:
a.b = 1;
c = a.b;
alert(c);
可是有时候却要用:
a[b] = 1;
c = a[b];
alert(c);
这两种写法有什么区别吗
那为什么有时候只有前者能用或是后者能用?
一、功能不同
1、用点:表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。
2、用中括号:表示一个数组,也可以理解为一个数组对象。
二、语法不同
1、用点: var LangShen = {"Name":"Langshen","AGE":"28"}。langShen.Name。在JSON数据结构、写函数组的时候中经常用。
2、用中括号:var LangShen = [ "Name","LangShen","AGE","28" ];每个值或函数,都是独立的,多个值之间只用,(逗号)隔开,因为是数组对象。
三、访问方式不同
1、用点:对象,访问时,用.(点)来层层访问。
2、用中括号:访问时,也是和数组一样,alert( LangShen[0] );
参考资料来源:百度百科-javascript
中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。
中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。
中括号运算符可以用纯数字为属性名。点运算符不能。
中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。
ps:点号后加标识符(静态的)
中括号放字符串,字符串可以是动态的,obj['string'+variable]
如果是静态的还是用点号方便
那为什么有时候,用点才能取到值,有时候却要用中括号呢?
追答不考虑[]用作数组或集合下标使用的情况,单针对某个对象,这两种写法本质是一样的。
你能举个例子, 只能用点或只能用中括号取属性值吗?