-
新增的let关键字,可以实现代码块级别的变量作用域(区别于之前只能函数内和全局变量),let定义的变量也需要先声明后使用。
{
let x = 2;
}
// 这里不能使用 x 变量 -
JSON的语法规则。 -- https://www.runoob.com/json/json-tutorial.html
数据为 键/值 对。
数据由逗号分隔。
大括号保存对象
方括号保存数组
- json 字符串和js对象的转换。
---- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
首先可以声明一个字符串变量,然后使用JSON.parse()的方式,转换成js对象,然后就可以对json中存储的对象和数据进行解析读取。JSON 数据可使用 AJAX 进行传输。
这种方式常见于前后端的数据交换中。
实例
var text = '{ "sites" : [' +
'{ "name":"Runoob" , "url":"www.runoob.com" },' +
'{ "name":"Google" , "url":"www.google.com" },' +
'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.sites[1].name + " " + obj.sites[1].url;
访问的时候也可以使用中括号访问:
var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = myObj["name"];
使用循环来访问json对象:
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "
";
}
- JSON对象解析异常:
JSON不能存储Date对象,需要转换成字符串。然后需要时在转换成日期对象。可以在转换成js对象的时候使用parse()函数的第二个参数,对日期类型进行过滤和转换,如下示例:
----
var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text, function (key, value) {
if (key == "initDate") {
return new Date(value);
} else {
return value;
}});
document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;
JSON 不能存储 Date 对象。
JSON.stringify() 会将所有日期转换为字符串。
实例
var obj = { "name":"Runoob", "initDate":new Date(), "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value。我们可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免以上问题的发生。
var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"};
obj.alexa = obj.alexa.toString();
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
网友评论