后端返回的命名带中横线不规范


前言

有些时候后端返回给我们的参数命名就不太规范,就会导致我们拿不到值,解析不出来~~~具体情况如下


一、属性访问与键访问

比如后端接口返回给你的一个属性是命名为下面这样的

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并不是一个有效的标识符属性名。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值