js的object的key需要引号吗_js对象的key到底加不加引号?

本文探讨了在JavaScript中对象键值是否需要使用引号的规则。当键值符合标识符原则时,加不加引号并无区别,但不符合时(如数字开头、特殊字符等)则必须使用引号。同时,使用Symbol作为键值时也需使用引号。文章通过代码示例详细阐述了这些规则,并展示了不同情况下对象的读取方式。
摘要由CSDN通过智能技术生成

这是大冰块2021年第12篇原创文章,和大冰块一起在前端领域努力吧!!!

写在前面

前两天看到一个同事的代码,他写对象的时候会把key值都会加上"",于是我又重新复习了一下关于对象中的key值加不加""的知识点。

那么加不加""有什么区别呢?首先要复习一下标识符原则:(1)标识符由字母、数字和下划线组成

(2)标识符的第一位必须是字母或者下划线,不能是数字

所以这里要分符合标识符情况和不符合标识符情况来说一下。

符合标识符情况

key加不加"",都一样,读取key对应的value有两种方式:obj["key"]和obj.key都可以。

代码如下:let obj1 = {name: "小明",age: 18,like: "爱好广泛"}let obj2 = {"name": "小红","age": 16,"like": "爱好很少"}console.log(obj1)

// {name: "小明", age: 18, like: "爱好广泛"}console.log(obj1.name, obj1.age, obj1.like)

// 小明 18 爱好广泛console.log(obj1['name'], obj1['age'], obj1['like'])

// 小明 18 爱好广泛console.log(obj2)

// {name: "小红", age: 16, like: "爱好很少"}console.log(obj2.name, obj2.age, obj2.like)

// 小红 16 爱好很少console.log(obj2['name'], obj2['age'], obj2['like'])

// 小红 16 爱好很少复制代码

不符合标识符情况

key必须加"",读取key对应的value只能是obj["key"]。

代码如下:let obj = {"0": "小明","0name": "小明明", // 这里会报错:Invalid or unexpected token(无效标记意外字符)"": 18,"¥": "哈哈","  ": "爱好广泛"}console.log(obj) // {0: "小明", 0name: "小明明", "": 18, ¥: "哈哈", "  ": "爱好广泛"}console.log(obj.0, obj.0name) // 报错console.log(obj['0'], obj['0name'], obj[''], obj['¥'], obj['  ']) // 小明 小明明 18 哈哈 爱好广泛复制代码

另外Symbol类型的值也不符合标识符,需要这种写法:obj["key"]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值