目录
二、Object.is() 用来比较两个值是否相等(NaN能判断其相等,-0和+0不等)
三、Object.assign():合并/复制对象 数组也可以
一、对象的简化写法:
let name="ty";
let age=15;
let json={//es6新增的对象的写法
name,
age,
showA(){}//不要使用箭头函数
};
console.log(json);
二、Object.is() 用来比较两个值是否相等(NaN能判断其相等,-0和+0不等)
三、Object.assign():合并/复制对象 数组也可以
let a={a:1};
let b={b:2,a:5};
let c={c:3};
let json=Object.assign({},a,b,c);//合并对象,后面的覆盖前面的;
console.log(json);
四、Object.values(),Object.keys(),Object.entries()可简写为values(),keys(),entries()
let {keys,values,entries} =Object;//结构赋值,方便下面简写
let json={a: 5, b: 2, c: 3}
for(let key of keys(json)){
console.log(key);
}
// for(let item of json){//数组遍历方法,不能直接用于对象
// console.log(item);
// }
for(let item of values(json)){
console.log(item);
}
for(let item of entries(json)){
console.log(item)
}
for(let [key,value] of entries(json)){
console.log(key,value)
}
五、对象的扩展运算符 ...
六、Object.defineProperty的使用
let obj={
test:'hello'
};
Object.defineProperty(obj,'test',{
configurable:true | false, //是否可以删除目标属性或是否可以再次修改属性的特性 默认false
enumerable:true | false,//此属性是否可以被枚举 默认false
value:'任意类型的值', //属性对应的值 默认undefined
writable:true | false //属性是否可以被重写 默认false
})
Object.defineProperty(obj,'newKey',{
configurable:true | false,
enumerable:true | false,
value:'任意类型的值',
writable:true | false
})