JavaScript 面向对象(二)对象和 JSON 的区别

来源:互联网 发布:联通3g网络速度 编辑:程序博客网 时间:2024/06/05 19:56

2.1 对象和 JSON 的区别

JSON 就是 JavaScript object notation ,JS对象表示法,是JS对象的严格子集。

区别就是引号:JSON要求所有的属性名(键)必须加 双引号“”,而JS对象实际上不要求双引号。

这就是一个标准JSON:


实际上不需要加引号也是合法的:



为什么JSON规定要加上双引号呢?

这是因为JSON是一个数据交换格式,它可以负责和PHP通信,它是HTML和PHP等等后台语言的信息交换媒介。PHP工程师可以从数据库中得到数据,组建JSON,前台通过Ajax拿到这个JSON之后,解析JSON,组建页面。

比如下图:



所以是其他语言要求JSON有引号,否则报错,不是JS要求的。JSON天生为通信而生!


但是有一种键必须加引号!就是不符合标识符命名规范的键,必须加引号,否则报错!

标识符命名规范:可以是字母、数字、下划线,但是不能以数字开头

下面是符合标识符命名规范的:


下面是不符合标识符命名规范的,必须加引号:


访问属性的时候,必须也加上引号,用方括号表示法。

特别的,如果我们用变量存储一个key,此时必须用方括号枚举,并且方括号中不能有引号:

比如小题目,alert出什么?


实际读取的是obj["2016"]  //就是14,

如果alert(obj["key"]) //888,

如果alert (obj.key)  //888 ,点语法只能以字符串形式访问对象中的键,key此时不是变量。

所以方括号语法相比点语法更为灵活。


原创粉丝点击