栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在JSON键中使用加引号的字符串有实际的理由吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JSON键中使用加引号的字符串有实际的理由吗?

为何将JSON键放在引号中的真正原因取决于ECMAscript 3标识符的语义。

不带引号的保留字不能用作对象文字中的
属性名称 ,例如:

({function: 0}) // SyntaxError({if: 0}) // SyntaxError({true: 0}) // SyntaxError// etc...

如果使用引号,则属性名称有效:

({"function": 0}) // Ok({"if": 0}) // Ok({"true": 0}) // Ok

自己的Crockford在本次演讲中对此进行了解释,他们希望保持JSON标准的简单性,并且不希望对其具有所有这些语义限制:

....

那是我们发现未引用名称的问题。事实证明,ECMA script
3具有一些保留字策略。保留字必须在关键位置加引号,这确实很麻烦。当我开始将其制定为标准时,我不想将所有保留字都放入标准中,因为它看起来确实很愚蠢。

当时,我试图说服人们:是的,您可以使用Javascript编写应用程序,它实际上可以正常工作,并且是一种很好的语言。那么,我不想同时说:看看他们所做的这件事真是愚蠢!因此,我决定让我们只引用这些键。
这样,我们就不必告诉任何人它的重制了。

这就是为什么到目前为止,键都用JSON引用。

现在,ECMAscript 5th Edition
Standard在ES5实现中解决了此问题,即使对象字面量和成员访问权限中,甚至保留字也可以不带引号使用(

obj.function
在ES5中是确定的)。

仅作记录,该标准已由软件供应商实施,您可以在此兼容性表上查看哪些浏览器包含此功能(请参阅 保留字作为属性名 )。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485391.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号