对象

    科技2022-07-16  132

    var obj={a:1,b:2}; 键值对 key a 键 value 1 值

    var names=“a”; var v=20; 属性名是变量,所以需要[ ]将变量包含 var obj={ [names]:v } 凡是字符,加了"“就是字符类型的字符串,不加”“就是变量名 只有在对象中属性名特殊,没有” "的属性名是字符串,有[ ]的属性名是变量

    获取属性值 var key=“e”; var obj={a:1,b:2,c:3,[key]:4}; console.log(obj.a); 使用.语法获取属性 console.log( obj [ key ] ) 如果属性名是变量,直接对象[变量] 获取该变量为属性名的值

    属性名必须是字符型或者Symbol型(暂时不管) 如果属性名所对应的变量不是字符,隐式转换为字符 例:var obj={}; obj[1]=10; console.log(obj) 为{1:10} var arr= [ ]; obj[arr]=10; console.log(obj) 为{" ":10}

    对象的遍历

    for(var prop in obj){ 将所有obj中的属性名分别赋值给prop这个变量 console.log(prop);//key console.log(obj[prop]);//value } 例如: 把obj的内容复制到o里边 var o={f:10,g:20}; for(var prop in obj){ o[prop]=obj[prop]; }

    ES6中新增属性:o=Object.assign(o,obj); 【注】js中的对象遍历是根据对象属性添加的先后来遍历,对象遍历是有顺序的

    这种固定样式类型的字符串,叫做JSON字符串,JSON类型 var str=JSON.stringify(obj); //转换为字符串 console.log(str); obj.a=10; obj.a++; obj.a*=100;

    //将JSON字符串再转换为对象 var s=’{“b” = 2}’ var o = JSOM.parse(s);

    浅复制 修改一层会变 第二层不会变 叫做浅复制 var o1={}; for(var prop in obj){ o1[prop]=obj[prop]; } var o1=obj; obj.a=10; obj.c.d=100; console.log(o1); 此时d属性没有变

    深复制 var o1=JSON.parse(JSON.stringify(obj)); obj.c.d=100; d属性变为d:100; console.log(o1);
    Processed: 0.009, SQL: 8