美文网首页
11-第十一章 对象 for in

11-第十一章 对象 for in

作者: 晚溪呀 | 来源:发表于2019-01-26 23:33 被阅读0次

    数组的应用:存储有序数据
    对象的应用:存储无序数据

    json格式的对象

    {
        健名:值    //  一组属性    每组属性之间用,隔开
        属性名建议写上 双引号
        最后一组属性 的 逗号问题,使用ES5 语法 建议不写,使用ES6 语法建议写上
    }
    

    json 对象的简写

    1、当一个属性的值等于一个变量,并且这个变量的值等于属性的时候,可以写成 只写一个就好
                let name = "楚鑫";
                let obj = {
                    name
                };
                console.log(obj.name)
    
    2、当一个属性值是一个函数的时候 : 可以省略不写,function 也可以不写
                let obj = {
                    "fn" () {},
                }
                console.log(obj.fn);
            }
    

    python:不叫对象 叫字典

    3、对象的属性直接写不用引号引起来的时候,类型是 string
    4、解构赋值

    解构赋值语法是一个 Javascript 表达式,这使得可以将值从数组或属性从对象提取到不同的变量中

    对象的解构赋值,当我们只需要某一个对象的方法时,我们可以使用解构赋值,这时候就不需要把整个模块都加载进来,减少负荷

            let {PI} = Math;
            console.log(PI);    //  3.141592653589793
    
    5、展开运算符 ...

    当 ... 出现在函数的时候,在调用这个函数的时候,传进去的数据是散的, ... 把散的数据用一个数组包起来,再通过...后面的词,当成这个数组的名字,收集起来
    当 ... 不是出现在函数的时候,是把数据一个一个展开

    ES5: for-in 迭代数组,可以迭代对象 返回变量的序号 迭代对象首选 性能较差
    ES6: for-of 迭代数组,不能迭代对象 返回变量的值 迭代数组、类数组首选 性能较好

    6、鸭子类型

    JSON 格式的对象字符串表示法
    `{"a": 1, "b": 2}`
    {"a": "1", "b": "2"}

    一、JSON

    1 、创建对象(JSON)

    对象是 Javascript 的基本数据结构,对象是引用类型
    创建对象的三种方式 对象直接量,new Oject(), Object.create( { } )
    [ ES5 ], create 创建需要一个对象参数

    //  直接量
    var  obj = {}
    
    //  new
    var  obj = new Object()
    
    //  ES5
    var  obj = Object.create()
    

    对象都是一个 key (键): value ( 值 ) 一一 对应
    age 为对象的 key (键),或 objage 属性
    20agevalue ( 值 )

    严格是对象为 JSON
    //  对象
    var obj = {  age: 20,name: '小黑', }
    //  JSON
    var obj = {  'age' : 20,'name': '小黑', }
    
    2 、访问 JSON 的值

    obj.attribute
    obj[attribute]

    var obj = {
        age: 20,
        name: '小黑',
        sex: '男'
    }
    alert( obj.age )   //20
    //或
    xalert( obj[age] )   //20
    
    3 、修改 JSON 的属性值
    var obj = { name: '小黑'};
    obj.name  = '二狗';
    //或
    obj[name ] = '二狗';
    
    4 、删除JSON属性

    delete 可以删除对象属性

    var obj = {};
    obj.name = 'hello';
    delete obj.name 
    //或
    delete obj[name] 
    
    5 、JSON数字属性
    var obj = {
        age: 20,
        name: '小黑',
        sex: '男'
    };
    obj[0] = 'hello';
    obj[1] = 'AAA';
    
    6、in 判断对象是否存在某个属性
    var   obj = { 
        hello:123
    };
    alert( 'hello' in obj );  //true
    
    7、json 格式对象的序列化和反序列化

    JSON.stringgify() 对象转字符串 属性值为函数的时候,可能会过滤掉这个函数,因为后台程序函数语法可能都不一样

    JSON.parse() 字符串转对象

    JSON.parse 里面出现单引号就转失败

                    let obj = {
                        "a": '1',
                        "b": function () {}
                    }
    
                    let a = JSON.stringify(obj);
                    console.log(a); //  {"a":"1"}   string
    
                    let b = JSON.parse(a);
                    console.log(b); //  {a: "1"}    object
    
    JSON.stringify() 数组转字符串

    数组转字符串值有函数会该值转化为 null

    console.log( JSON.stringify( [1, 2, function fn() {} ] ) ); //  [1,2,null]
    
    8、Object.is(value1, value2) 判断两个值是否相等

    两个值都是 undefined
    两个值都是 null
    两个值都是 true 或者都是 false
    两个值是由相同个数的字符按照相同的顺序组成的字符串
    两个值指向同一个对象
    两个值都是数字并且
    都是正零 +0
    都是负零 -0
    两个值都是 undefined
    都是 NaN
    都是除零和 NaN 外的其它同一个数字

    二 、(for in) (for of) 遍历 json

    1、for in 遍历 JSON
    var person = {
        age: 20,
        name: '小黑',
        sex: '男'
    }
    for( var attr in person){  //attr 为属性,attr不是必须的,可以为任意变量名
        console.log( attr );  //属性名: age,name,sex
        console.log( person[attr] )//对应的属性值:20 小黑 男
    }
    
    2、for in 也可以遍历数组 (性能较差)
    var  arr = [8,2,4,6];
    for ( var index in arr){
        console.log( index );               //0 1 2 3
        console.log( arr[index] );       // 8 2 4 6
    }
    
    3、for of 也可以遍历数组 ,不能遍历对象 (性能比 for in 好)
    var  arr = [8,2,4,6];
    for ( var index of arr){
        console.log( index );         // 8 2 4 6            
    }
    

    !!!! for 循环不能遍历 JSON

    相关文章

      网友评论

          本文标题:11-第十一章 对象 for in

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