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

JSON和JavaScript对象之间有什么区别?

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

JSON和JavaScript对象之间有什么区别?

首先,您应该知道什么是JSON:

  • 它是与 语言无关的 数据交换格式。

JSON的语法受Javascript对象文字表示法的启发,但是它们之间存在差异。

例如,在JSON中,所有 键都 必须加引号,而在对象文字中,则不需要:

// JSON:{ "foo": "bar" }// Object literal:var o = { foo: "bar" };

引号在JSON上是必需的,因为在Javascript中(更确切地说在ECMAscript 3rd。Edition中),不允许将 保留字
用作属性名称,例如:

var o = { if: "foo" }; // SyntaxError in ES3

而使用字符串文字作为属性名称(引用属性名称)不会出现任何问题:

var o = { "if": "foo" };

因此,对于 “兼容性” (也许容易评估?),引号是强制性的。

JSON中的数据类型也限制为以下值:

  • string
  • number
  • object
  • array
  • 文字为:
    • true
    • false
    • null

Strings
变化的语法。它们 必须双引号 分隔,而在Javascript中,您可以互换使用单引号或双引号。

// Invalid JSON:{ "foo": 'bar' }

可接受的JSON语法

Numbers
也发生了变化,例如
0xFF
,在Javascript中,您可以使用十六进制文字,或(臭名昭著的)八进制文字,例如
010
。在JSON中,您只能使用十进制文字。

// Invalid JSON:{ "foo": 0xFF }

有些错误的实现(Firefox 3.5+,IE8+,json2.js)错误地允许使用八进制文字,例如

JSON.parse('01')
应产生一个
SyntaxError



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

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

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