
ES 提案:JSON 超集
由 Richard Gibson 提出的提案 “JSON superset” 是 ECMAScript 2019 的一部分。这篇博客文章讨论它是如何工作的。
目前,JSON(通过 ECMA-404 标准化)不是 ECMAScript 的子集:
- 直到不久前,ECMAScript 字符串不能包含字符集 U+2028 行分隔符和 U+2029 段落分隔符(必须在字符串中转化它们)。于是,下面的源代码产生语法错误:
const sourceCode = '"\u2028"'; eval(sourceCode); // SyntaxError
- JSON 字符串可以包含这两个字符:
const json = '"\u2028"'; JSON.parse(json); // OK
鉴于 JSON 的语法是固定的,决定移除 ECMAScript 字符串的限制。这简化了编程规范,因为你不需要区分 ECMAScript 字符串和 JSON 字符串的规则。
本文作者 Axel Rauschmayer,转载请注明来源链接: