扫码关注官方订阅号
js内部是怎么存储属性的?
认证0级讲师
你可以把 js 对象当作一个 Hashtable,所以其实 . 和 [] 没多大区别,作用完全相同。但是
.
[]
一般情况下建议使用 . 写法,这样比较接近其它语言的面向对象写法,易读
如果属性名是动态的(比如变量中),只能使用 [] 写法
从功能上看,这两种访问对象属性的方法没有任何区别。但方括号语法的主要优点是可以通过变量来访问属性,如
var person={name:"myName"}; var proName="name"; console.log(person[proName]);
如果属性名中包含会导致语法错误的字符,也只能使用方括号语法,如:
var person={"na,me":"myName"}; console.log(person["na,me"]);
. 是你知道这个这个对象的具体属性名,然后可以通过 .propertyName 来获取属性值,如数组的的lenght属性;[ ]是你不知道这个对像的属性名;
.propertyName
lenght
[ ]
//示例代码 for(var key in data){ console.log(key + ':' + data.key);//错误 undefined console.log(key + ':' + data[key]);//正确 }
没有什么区别,当你不能使用.的时候比如key本身包含.或key是个变量就要使用[]。内部具体存储是如何不知道,说是以map的形式。
语法糖,实现一致
.语法不支持非法token属性名
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你可以把 js 对象当作一个 Hashtable,所以其实
.和[]没多大区别,作用完全相同。但是一般情况下建议使用
.写法,这样比较接近其它语言的面向对象写法,易读如果属性名是动态的(比如变量中),只能使用
[]写法从功能上看,这两种访问对象属性的方法没有任何区别。
但方括号语法的主要优点是可以通过变量来访问属性,如
如果属性名中包含会导致语法错误的字符,也只能使用方括号语法,如:
.是你知道这个这个对象的具体属性名,然后可以通过.propertyName来获取属性值,如数组的的lenght属性;[ ]是你不知道这个对像的属性名;没有什么区别,当你不能使用.的时候比如key本身包含.或key是个变量就要使用[]。
内部具体存储是如何不知道,说是以map的形式。
语法糖,实现一致
.语法不支持非法token属性名