首页 > js对象访问属性有两种方法 ”.”记法和”[ ]“记法,有什么区别吗?

js对象访问属性有两种方法 ”.”记法和”[ ]“记法,有什么区别吗?

js内部是怎么存储属性的?


你可以把 js 对象当作一个 Hashtable,所以其实 .[] 没多大区别,作用完全相同。但是


没有什么区别,当你不能使用.的时候比如key本身包含.或key是个变量就要使用[]。
内部具体存储是如何不知道,说是以map的形式。


从功能上看,这两种访问对象属性的方法没有任何区别。
但方括号语法的主要优点是可以通过变量来访问属性,如

var person={name:"myName"};
var proName="name";
console.log(person[proName]);

如果属性名中包含会导致语法错误的字符,也只能使用方括号语法,如:

var person={"na,me":"myName"};
console.log(person["na,me"]);

. 是你知道这个这个对象的具体属性名,然后可以通过 .propertyName 来获取属性值,如数组的的lenght属性;
[ ]是你不知道这个对像的属性名;

//示例代码
for(var key in data){
    console.log(key + ':' + data.key);//错误 undefined
    console.log(key + ':' + data[key]);//正确
}

语法糖,实现一致

.语法不支持非法token属性名

【热门文章】
【热门文章】