The JSON标准以一种方式定义对象,并且ECMAScript(JavaScript)标准在另一个标准中定义了它。
人们常说 JSON 对象是 JavaScript 对象的子集,这是真的吗?
每个 JSON 对象也是一个有效的 JavaScript 对象吗?
2019年更新: 现在就有答案了YES as of 这个提案ECMAScript 2019(含)之后的 JavaScript 版本将是适当的超集。
TL;DR
答案是不”。在某些情况下,JSON 对象对于 JavaScript 无效。 JSON 不是 JavaScript 子集。
“一点”差别
JSON
也就是说:由于 JSON 规范,您可以安全地使用这些字符,例如U+2028在任何字符串中。它是一个统一码空白特点。不是控制或其他特殊字符。
JavaScript
好吧,现在在 JavaScript 中。 ECMA-262 在字符串的定义上有一点不同。在第 7.8.4 节有件事,该字符串可以包含除引号、反斜杠或行终止符。现在什么是行终止符?在里面第 7.3 节 :
- \u000A - 换行
- \u000D - 回车
- \u2028 - 行分隔符
- \u2029 - 段落分隔符
正如你所看到的,在 JavaScript 符号中U+2028 and U+2029不允许。
这是一个示例,但由于我们有最后一个差异的情况下,足以认识到答案是no
图片来源及完整说明:永恒的回购协议
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)