以下代码片段在 IE 10 JS 控制台和 Chromes JS 控制台中执行。 fiddle
alert({123:"ABC"}[123]);
但是,当通过 linter 运行它时(例如 jslint.com ),它会提示。
当我阅读 json.org 中的文档时我了解以下内容
表示在 JSON 对象中使用数字作为名称是不正确的。那么这是否意味着至少V8和Chakra发动机是不正确的呢?或者这与严格模式有关(如果有,当我在节点中测试它时似乎没有任何效果)?
最佳答案
您将 Javascript 文字语法与 JSON 语法混淆了。 JSON 是 Javascript 文字语法的受限子集。
ECMAScript 对象初始化器的规范可以在 here 找到。 。它包含以下产品:
PropertyName : IdentifierName StringLiteral NumericLiteral
因此允许使用数字作为属性名称。
关于javascript - JSON 中数字作为名称有效吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29624924/