美文网首页
JavaScript对象和json

JavaScript对象和json

作者: 追逐_e6cf | 来源:发表于2019-02-16 19:13 被阅读0次

    一、对象

    1. 在js中,对象是一种数据类型,不同于其他语言中的对象,js对象可以直接写出来,对象的写法包括:{}字面量、new Object()Object.create({})。格式是{键:值},多个键值对用逗号分隔,键表示属性名,值表示属性值。
    2. 键可以加引号也可以不加引号,可以写字符串和数值类型,其他变量类型不能书写。值必须存储数据,可以是任意数据类型,和数组类似。
    3. 在es6中,如果键名和变量名一致,那么可以直接写变量进去,变量名表示键的值,变量值表示值。
    4. 查找一个属性的值:使用中括号语法或者.语法获取。对于类数组,其实是个对象,有length属性和熟知的键。
    5. 修改属性的值:obj.name = "张三";
    6. 添加值:obj.age = 18;直接添加。
    7. 删除键值对:delete obj.name;
    8. 判断对象中是否存在某个属性,使用in关键字:"name" in obj存在为true,不存在为false。
    var stu = {
        name:"张三",
        0:"000",
        1:"111",
        2:"222",
        length:3
    };
    stu.name = "李四";
    stu.xx = NaN;
    stu.height = 180;
    console.log(stu[0]); //000
    console.log(stu.0); //报错
    if("xx" in stu){
        alert("存在");
    }else{
        alert("不存在");
    }
    

    二、遍历对象

    1. 数组自带length属性,但是类数组本质是一个对象,没有默认的length属性。
    2. 对象的遍历使用for...in循环,但是for in循环性能太低了,因为for in循环不仅遍历对象的每一个属性,而且还遍历了对象的原型链。
    var oArr = {
        0:'你好',
        1:'他好',
        2:'我也好',
        lenght:3
    }
    console.log(oArr);
    for(var i = 0; i<oArr.length;i++){
        console.log(oArr[i]);
    }
    
    var obj = {
        name:"张三",
        age:18,
        length:2,
    }
    for(var x in obj){
        console.log(x);
    }
    

    三、json

    1. json:JavaScript Object Notation "js 对象 标记",是通用的数据传输格式,本质上是一个字符串。
    2. 长得像对象,但是写法不一样,键和值必须用双引号包裹。
    3. 序列化:JSON.stringify只有对象、数组、字符串、数值、布尔值、null可以序列化为json。
    4. 反序列化:JSON.parse把json转换为js对象。
    5. JSON.parse/stringify不兼容IE7及以下,解决兼容性问题:使用json2.js。
    var obj = {
        name:"张三",
        age:[1,2,3],
        y:null,
        o:{name:"李四"},
        sing:function(){
            alert("song");
        }
    }
    console.log(JSON.stringify(obj));
    
    var json = '{"name":"lisi"}';
    var json2 = '["name","age","王五"]';
    var json3 = "你好";
    var json4 = "123";
    console.log(JSON.parse(json));
    

    相关文章

      网友评论

          本文标题:JavaScript对象和json

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