简洁表示法
//第一种
let a = 1;
let b = 2;
let es5 = {
a:a,
b:b
};
let es6 = {
a,
b
};
console.log(es5, es6);//{a:1,b:2}
//第二种
let es5_method = {
test: function(){
console.log("es5_M");
}
};
let es6_method = {
test(){
console.log("es6_M");
}
};
es5_method.test();//es5_M
es6_method.test();//es6_M
属性表达式
let a = 'b';
let es5_obj = {
a: 'c',
b: 'c'
};
let es6_obj = {
[a]: 'c'
};
console.log(es5_obj, es6_obj);//{a: "c", b: "c"} {b: "c"} 对象名是变量的时候实用
扩展运算符
- 扩展运算符
- babel-polyfill对扩展运算符的支持不是很友好,所以这里提一嘴而已
let {a,b,c} = {a:'1', b:'2',c:'3', d:'4', e:'5'};
Object新增方法
- Object.is()判断相等,功能类似 ===
- 数组是引用类型,所以[]不等于[]
console.log('字符串', Object.is('asd','asd'), 'abc' === 'abc');//true true
console.log('数组', Object.is([], []), [] === []);//false false
- Object.assign()
- 浅拷贝,不可以拷贝不可枚举的属性
var obj = {a:[1,{c: '3'}],b:'2'};
console.log('浅拷贝', Object.assign(obj));//{a: "1", b: "2"}
Object.assign(obj).a[1].c = 5;
console.log(obj);//obj中对象c等于5,浅拷贝
let obj1 = {a:'123','b':'456'};
for(let [key,value] of Object.entries(obj1)){
console.log([key,value]);
}