js 对象的 key 到底加不加引号?
写在前面
前两天看到一个同事的代码,他写对象的时候会把 key 值都会加上""
,于是我又重新复习了一下关于对象中的 key 值加不加""
的知识点。
那么加不加""
有什么区别呢?首先要复习一下标识符原则:
1、首字母必须是字母、下划线(_)或美元符号($),不能是数字。
2、除首字母外,其他字符可以是字母、数字、下划线或美元符号($)。
3、普通标识符(用作变量名、函数名和循环语句中用于跳转的标记)不能是保留字符或关键字。
4、在严格模式下,arguments 和 eval 不能用作变量名,函数名或者参数名。
所以这里要分符合标识符情况和不符合标识符情况来说一下。
符合标识符情况
key 加不加""
,都一样,读取 key 对应的 value 有两种方式:obj["key"]
和obj.key
都可以。
代码如下:
复制代码
不符合标识符情况
key 必须加""
,读取 key 对应的 value 只能是obj["key"]
。
代码如下:
复制代码
另外 Symbol 类型的值也不符合标识符,需要这种写法:obj["key"]
。
关于 Symbol 类型的学习,可以参考我的历史文章。
原创不易,如有错误,欢迎指正。
如果有帮助到你,请给大冰块悄悄点赞关注,你的点赞关注就是我写下去的动力。
让我们一起在前端的路上进步吧~🤭
版权声明: 本文为 InfoQ 作者【南极一块修炼千年的大冰块】的原创文章。
原文链接:【http://xie.infoq.cn/article/8cc7488391c1fb0dabc5fe9b9】。文章转载请联系作者。
评论