js中对于对象取值时有两种方法, 一种是点语法, 一种是中括号语法. 但总有人不清楚什么时候用哪种. 网上其他博客有的说的不太全. 这次详细的说的介绍一下:
中括号语法: 任何时候 场合都可使用 适用范围很广;
点语法: 较有局限性, 一下说一下;
举例一:
let obj = {
a: 123
}
console.log(obj.a) // 123
console.log(obj['a']) // 123
点语法和中括号语法都没问题 正常;
举例二:
let obj = {
'': 123
}
console.log(obj.'') // SyntaxError
console.log(obj['']) // 123
key为空字符串时, 中括号可正常取值, 点语法报错; 其实编辑器就提示你了. 中括号用双字符串也可取值
举例三:
let obj = {
1: 123
}
console.log(obj.1) // SyntaxError
console.log(obj[1]) // 123
结果同上, key为number类型时, 点语法也无法取值
举例四:
let obj = {
'1': 123
}
console.log(obj.'1') // SyntaxError
console.log(obj['1']) // 123
结果同上, key为数字字符串时 点语法也无法取值
举例五:
let obj = {
'a': 123
}
let value = 'a'
console.log(obj.value) // undefined
console.log(obj[value]) // 123
当key为变量时, 点语法无法取值, 中括号语法可正常取值;
小结: 暂时项目中遇到的区别就这些吧. 希望对前端路上的你有一点帮助;