1、为什么要解析JSON?
因为JSON是一种数据交换格式,在正常使用时,由后端将数据传到前端,前端接收到的数据会是一个字符串。
2、JSON的转换
1)将JSON格式字符串转换称对象
var 对象变量JSON.parse(字符串)
//用途:通常用于将接收到的数据(字符串)转换为对象
2)将对象(任意对象或者数组)转换称字符串
var 字符串=JSON.stringify(对象或数组);
用途:通常用于将数据转换成字符串以后发送到服务器存储到数据库
3) eval函数(补充),存在风险
将函数的参数字符串作为JS语句进行执行
JSON的作用
规范数据格式,便于存储
var obj={"name":"张三丰","age":18);//单独放到data.json文件中
//这些ajax之后会学到的
var ajax=new XMLHttpRequest();
ajax.open('get','./data.json');
ajax.onreadystatechange=function(){
if(ajax.readyState==4 && ajax.status==200){
var str=ajax.responseText;
console.log(typeof str,str);
//由于通过JAJAX获取到的数据通常都是一个字符串,所以需要进行转换
//console.log(str.name);//没有转换之前无法通过对象操作
//console.log(window.JSON);
var data=JSON.parse(str);
console.log(typeof data,data);
console.log(data.name);
}
}
ajax.send();
//json格式
var obj={"name":"张三丰","age":18);
//对象格式
var obj={name:"张三丰",age:18);
//将对象转换成字符串
var str=JSON.stringify(obj);
console.log(typeof str,str);
//将字符串转换成对象
var data=JSON.parse(str);
console.log(typeof data,data);
//eval函数:将字符串转换成对象
eval('var obj='+str);//相当于:var obj={"name":"张三丰","age":18);
console.log(a);
编译原理
软件的编译模式分为:
编译型编程语言:代码开发好以后,执行编译命令,将编译的文件下载到电脑上安装即可使用
如:c语言,c++,Java。。。
解释性编程语言:代码开发好以后,不执行编译。在执行代码时才进行编译,解释一句执行一句
如:JS php jsp asp.net …
两个阶段:
预编译阶段:将函数和变量定义进行提升(将函数和变量的定义提到作用域的第一句之前执行)。
解释执行阶段:一句一句地执行
console.log(a);
var a=10;
var show=function(){
console.log(a);
var a=1;
console.log(a);
}
show();
//结果:10,undefined,1