本系列文章根据《爱前端邵山欢老师深入浅出的js面向对象》视频整理归纳
对象与JSON的区别
JSON 就是 JavaScript object notation ,JavaScript 对象表示法。是 JavaScript 对象的严格子集。
JSON 要求所有的键必须加双引号,而 JavaScript 对象不要求双引号。
标准JSON格式:
var obj = {
"name" : "张鑫",
"age" : 25,
"sex" : "男"
}
JavaScript对象:
var obj = {
name : "张鑫",
age : 25,
sex : "男"
}
JSON 规定必须加引号的原因
因为 JSON 是一个数据交换格式,作为 HTML 与 PHP、JAVA等后台语言的信息交换媒介。后台工程师从数据库中得到数据,组建 JSON ,前台通过 Ajax 获取 JSON 并解析,组建页面。(所以是其它后台语言在组建 JSON 时要求加引号,否则报错,并非JavaScript要求的。)JSON天生为通信而生。
但是 JavaScript 中有一种键必须加引号,就是不符合标识符命名规范的键,必须加引号,否则报错。如
var obj = {
"-" : 12,
"@@@" : 135,
"2017" : 568
}
访问属性时,必须加引号,用方括号表示法:
obj["2017"]
如果我们用变量存储一个 key,此时 必须用方括号访问,并且 方括号中不能有引号。如:
var obj = {
"2017" : 1,
"key" : 2
}
var key = 2015 + 1 + 1;
console.log(obj[key]); // 1
console.log(obj["key"]); // 2
console.log(obj.key); // 2
点语法只能以字符串形式访问对象中的键,无法使用变量访问