文章目录
前言
有些时候后端返回给我们的参数命名就不太规范,就会导致我们拿不到值,解析不出来~~~具体情况如下
一、属性访问与键访问
比如后端接口返回给你的一个属性是命名为下面这样的
const obj{
name: '123';
time: {
aaa-bbb: '特殊命名';
aaa:'123'
}
}
你会发现你去获取aaa-bbb的值的时候,不能直接按照我们正常的写法
consol.log(obj.time.aaa-bbb) //undefin
consol.log(obj.time.aaa) //123
这是为什么呢?是因为他不符合js的变量的命名规范
那么,要是我们不去麻烦后端重新命名的话,我们该如何改呢?
//方法一
consol.log(obj.time['aaa-bbb'])
但是后面我发现在结构赋值中有点问题,但是我们用下面的写法就能解决的
总结
这里面其实用.XXX语法通常称之为“属性访问”,[“XXX”]语法通常称之为“键访问”。两者都是共同的,但我们一般常见和常用的是属性访问。
两者在大多数情况下是通用的,但是属性访问语法需要满足标识符的命名方式,而键访问接受任意UTF-8/Unicode字符串作为属性名
举例来说,如果要引用名称为"aaa-bbb "的属性,那就必须使用["aaa-bbb "]语法访问,因为aaa-bbb并不是一个有效的标识符属性名。