[转]js对象中取属性值(.)和[ ]的区别

原文地址:https://www.jianshu.com/p/6a76530e4f8f3d

今天在写js的过程当中遇到这么一个问题,取一个对象的属性值,经过obj.keys怎么都取不出来,可是用obj[keys]就能够。(这个是模拟的数据)orm

 

后来经过查资料明白,我这里data.water输出undefined,是由于object使用(.)获取属性值时,这里的water不是使用的变量water,而是直接去data对象中寻找名为water的key,没有找到,因此报undefined。 对象

区别:字符串

相同点:均可以获取到obj的属性值io

不一样点:form

     1 [ ]运算符能够使用字符串变量的内容做为属性名,点运算符不能class

     2 [ ]运算符能够用纯数字做为属性名,点运算符不能变量

    3 [ ]运算符能够用js关键字和保留字做为属性名,点运算符不能object

eg:file

1 [ ]运算符能够使用字符串变量的内容做为属性名,点运算符不能

 

    这里因为变量的var声明的变量会致使变量提高,因此会报undefined

2   [ ]运算符能够用纯数字做为属性名,点运算符不能

总结:对于通常的常量就使用(.)运算符,对于其余的使用[ ]运算符。

相关文章
相关标签/搜索