js可以通过点(.) 或 方括号([]) 运算符来获取属性的值,运算符左侧应当是一个表达式,它返回一个对象。对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符。对于方括号([])来说,方括号里必须是一个计算结果为字符串的表达式,这个字符串就是属性的名字
当通过点运算符(.)方法对象属性时,属性名用一个标识符来表示。标识符必须直接出现再js程序中,它们不是数据类型,因此程序无法修改它们。
反过来讲,当通过[]来方式对象的属性时,属性名通过字符串表示。字符串是js的数据类型,再程序运行时可以修改和创建它们。
区别:
1:中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。
2: 中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。
(即:点号后加标识符(静态的);
中括号可放字符串,字符串可以是动态的,obj[‘string’+variable])
3:中括号运算符可以用纯数字为属性名。点运算符不能。
4:中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。