javascript - 为什么 JSON 是 JavaScript 的子集?

标签 javascript json eslint

Wikipedia says JSON 被设计为 JavaScript 的非严格子集,即允许使用一些 Unicode 字符。引用截至 2015-11-05 的当前版本:

Though JSON is commonly perceived as being a subset of JavaScript and ECMAScript, it allows some unescaped characters in strings that are illegal in JavaScript and ECMAScript strings.

但是.. 如果我在 ESLint 中粘贴维基百科页面中的任何示例,它会失败并出现错误。

例如我粘贴这个:

{
  "id": 1,
  "name": "Foo"
}

进入http://eslint.org/demo/并得到:

2:8 - Parsing error: Unexpected token : (undefined)

出于某种原因,冒号在 JavaScript 中似乎是非法的,这与字符串中的未转义字符无关。

为什么人们仍然称 JSON 为 JavaScript 子集?

最佳答案

JSON 是 JavaScript 对象 表示法的子集。您不能凭空声明一个对象。

该对象的 JavaScript 用法是将其分配给一个变量:

var o = {
  "id": 1,
  "name": "Foo"
};

或者将它传递给一个函数:

console.dir( {"id": 1, "name": "Foo" } );

等等

关于javascript - 为什么 JSON 是 JavaScript 的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33530729/

相关文章:

ios - 如何将 Google blogspot 中的 JSON API 与 iOS 集成?

javascript - 扩展 'eslint' 配置为格式化程序,但无法格式化 'JavaScript' -files

reactjs - Eslint 配置错误。 ESLint 找不到要扩展的配置 "dev"

reactjs - ESLint: 'Partial' 未在 typescript 中定义

javascript - 如何检查名称是否已存在于 Firebase 实时数据库(Firebase 和 JS)中

javascript - 扩展主干类并仅覆盖对象的一个​​字段

javascript - 如何在meteor-tabular包中使用字段数组中的数据

javascript - ES6 模板文字与串联字符串

javascript - 如何按 id 值从最新到最旧对 JSON 进行排序

python - 从对象中的 JMESPath 表达式中提取 key