const obj ={
a: 1,
b: 2
}
obj['a']
和 obj.a
在实际应用中的区别,或者说应该注意的地方
除了 obj[a]
,a
可以作为变量,还有哪些
const obj ={
a: 1,
b: 2
}
obj['a']
和 obj.a
在实际应用中的区别,或者说应该注意的地方
除了 obj[a]
,a
可以作为变量,还有哪些
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
两种都是属性访问的写法,从功能上来说没有区别。
但是
.
写法后面必须是一个合法的标识符,[]
写法可以是任何字符串、字符串表达式或结果可以转为字符串的表达式。比如有一个属性叫"!@#$%^&"
,你就没法把它写在点后面,但是却可以写成obj["!@#$%^&"]
。另外,[]
写法中,属性名可以是表达式,当然可以是变量,这也是点号访问做不到的。另外 @linong 提到了
?.
的写法不同,对于点号,要空可选,直接?.
就行;但对于方括号的,是直接在方括号前加?.
,如obj?.["blabla"]
。