2019-08-27

2019-08-28  本文已影响0人  FiringAce
  1. 新增的let关键字,可以实现代码块级别的变量作用域(区别于之前只能函数内和全局变量),let定义的变量也需要先声明后使用。
    {
    let x = 2;
    }
    // 这里不能使用 x 变量

  2. JSON的语法规则。 -- https://www.runoob.com/json/json-tutorial.html

数据为 键/值 对。
数据由逗号分隔。
大括号保存对象
方括号保存数组

  1. 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 + "
";
}

  1. 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;

上一篇 下一篇

猜你喜欢

热点阅读