原文地址: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 [ ]运算符能够用纯数字做为属性名,点运算符不能
总结:对于通常的常量就使用(.)运算符,对于其余的使用[ ]运算符。