美文网首页JavaScript渣渣到大神手册
JS面向对象--2 对象和JSON的区别

JS面向对象--2 对象和JSON的区别

作者: FF_C | 来源:发表于2017-11-28 17:49 被阅读0次

JSON就是javascript object notation,JS对象表示法,是JS对象的严格子集
区别就是引号:JSON要求所有的键必须加双引号,而JS对象实际上不要求双引号

这就是一个标准JSON

 var obj ={
  "name":"小明",
  "age":"12",
  "sex":"男",
  "married":false
 } 
 alert(obj.age)

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

var obj={
  name:"小明",
  age:12,
  sex:"男",
  married:false
}
alert(obj.name)

为什么 JSON规定要加上引号呢?这是因为JSON是一个数据交换格式,它是HTML和PHP等等后台语言的交换媒介,PHP工程师可以从数据库中得到数据,组建JSON,前台通过AJAX拿到这个JSON后解析JSON 组建页面.

所以是其他语言要求JSON有引号,否则其它语言中会报错,不是JS要求的。JSON天生为通信而生
但是,有一种键必须加引号。就是不符合标识符命名规范的键,必须加引号,否则报错。

// 如果命名是符合标识符的命名规范的,不需要加引号

 var obj ={
  $ : 12,
  _ : 13,
  _$0_0$_ : 14
 }
 alert(obj.$);
 alert(obj._);

// 比如下面的键名都不符合标识符的命名规范 所以要加双引号

var obj = {
  "-": 12,    
  "@@@":13,
  "2016" :14,
  "2017" :15   
};
alert(obj["2017"]) ; //加引号后没人报错 
//alert(obj.2017)     //点写法不行

访问该属性的时候,必须加上引号,用方括号表示法
obj["attr"]

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

var obj = {
  "-": 12,    
  "@@@":13,
  "2016" :14,
  "key" :888
};
var key =2014 +1 +1;
alert(obj[key]);    //实际读取的是obj["2016"]就是14
alert(obj["key"]);    //888
alert(obj.key);    //888

相关文章

  • JS面向对象--2 对象和JSON的区别

    JSON就是javascript object notation,JS对象表示法,是JS对象的严格子集区别就是引号...

  • JavaScript笔记(一)

    一、面向对象面向过程的区别 1、什么是js对象 js对象:属性和方法的集合,js所有数据都可以看成对象...

  • 2-json

    json数据和普通的js对象的区别:1、json数据没有变量,直接是{} 或者 []2、json形式的数据结尾没有...

  • JS面向对象精要(二)_函数

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(三)_理解对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(四)_构造函数和原型对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(五)_继承

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • json笔记

    1.json 对象和 json 字符串的区别 json对象:var str2 = { " ": " ", " ":...

  • jQuery前端框架--笔记

    1,JS对象和jQuery对象的区别 jQuery就是JS中的new Object生成的普通对象。 2,JS对象和...

  • js程序高级设计

    1.JSON对象 json对象与js对象字面量的区别没有变量声明,在json中没有变量的概念没有末尾的分号json...

网友评论

    本文标题:JS面向对象--2 对象和JSON的区别

    本文链接:https://www.haomeiwen.com/subject/gseebxtx.html