对象.属性和对象[‘属性’]这两个用法的意义其实是一样的,都是用来调用对象的属性。
其中,属性都是字符串类型的,即使是纯数字,也会转化为字符串类型,但是当对象的属性的命名不合法时,就会报错!即使在他上面加了’’不会报错,也不能使用对象.属性的方式来获取属性的值(对象.属性中,这里的属性是不加’’的,也就是不能使用对象.’属性’这样的表达,是不合规的,会报错,而对象[‘属性’]中又必须加’’,不合法命名除外,当属性是纯数字时,只能使用对象[‘属性’],且不加’’也是可以的,即:对象[属性]也是可以的)
合法的命名:以字母,数字,下划线命名,但是不能以数字开头(可以以字母、下划线开头)
由此可以看出,9a,a-6是命名不合法的,报错!
但如果是纯数字,他会自动转化为字符串!!!
由此可见,上述中说道,属性都是字符串类型,即属性中:age 和 ‘age’ 是一样的类型,都是字符串类型。
我们将不合法命名注释掉。
=================================================================================
现在我们开始来测试一下属性age1:
=================================================================================
这样的写法是不合规的!!!报错!!!
所以,对象.属性中,是不加’’的
=================================================================================
这样写的age1是变量,而这个变量未定义
=================================================================================
所以,对象[‘属性’]必须加’’
=================================================================================
现在我们开始来测试一下属性'age2':
=================================================================================
这样的写法是不合规的!!!报错!!!
所以,即使属性上加了’’,在使用对象.属性的时候也是不加’’的
=================================================================================
================================================================================
所以,对象[‘属性’]必须加’’
=================================================================================
现在我们开始来测试一下属性name,来使刚刚的结论得以信服:
=================================================================================
不合法使用对象.属性!!
所以,在使用对象.属性的时候是不加’’的
=================================================================================
=================================================================================
所以,对象[‘属性’]必须加’’
=================================================================================
现在我们开始来测试一下属性98:
纯数字的字符串不能使用对象.属性的格式!
=================================================================================
不合法使用对象.属性!
=================================================================================
为什么这两个都不合法使用呢?!
因为纯数字只能使用:对象[‘属性’]这样的形式
=================================================================================
=================================================================================
所以,当属性是纯数字时,对象[属性]也是正确的
=================================================================================
9a的命名是不合法的,当加上’’时,便是可以的,因为当加上’’这个的时候,它便认定为9a就是字符串,、
现在我们来测试一下’9a’:
这样的9a命名是不合法的!!!
=================================================================================
对象.属性中,是不加’’的
=================================================================================
9a命名不合法,并且对象[‘属性’]必须加’’
=================================================================================
所以,对象[‘属性’]必须加’’
综上:
1.命名合法时,无论age还是’age’形式,对象.属性和对象[‘属性’]的使用是一样的:对象.属性中属性不能加’’,对象[‘属性’]必须加’’。
2.命名不合法时,是纯数字时,只能使用对象[‘属性’],对象[属性](属性有无’’都可以)。
3.命名不合法时,不是纯数字时,不加引号,直接报错。
3.命名不合法时,不是纯数字时,加引号,只能使用对象[‘属性’]。
总之,命名要合法