JavaScript中通过[]和.获取对象属性的区别

JavaScript中获取对象属性,我们一般用点或中括号的方法。

通过.的方式

1
var obj = {
2
  name:'张山'
3
}
4
console.log(obj.name);  // 张山

.运算符:使用前提是右侧必须是一个属性名称命名的标识符

如果我们恰好遇见对象中的属性刚好不符合标识符的规范,就不能用.来访问。就会保语法错误。

1
let obj = {"1":"张山"};
2
console.log(obj.1);

所以这里我们只能用[]来获取对象属性。

通过[]获取对象属性

[]右边必须是一个计算结果为字符串的表达式,这就让[]的使用很灵活了。

1
let obj = {"1":"张山"};
2
console.log(obj["1"]);

例子

1
const a = {};
2
const b = {key:'b'};
3
const c = {key:'c'};
4
a[b]=123;       // [Object Object] = 123
5
a[c]=456;        // [Object Object] = 456
6
console.log(a[b]);    // 456

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!