对象

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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值