特点
1、在对象中属性名和属性值一样,可以省略属性值
2、在对象中函数可以省略:function
3、表达式可以当做对象中的属性名
案例
var name = 'zs'
var first = 'first'
var end = 'end'
var obj = {
name,
age: 18,
// say: function () {
// console.log(this.name);
// },
say() {
console.log(this.name);
},
[first + end]: '表达式'
}
console.log(obj);
console.log(obj.firstend);
console.log(obj.name);
obj.say()
// Object.is函数 函数的作用:比较两个值是否严格相等,或者说全等。 ===
console.log(Object.is(1, 1));
console.log(Object.is(1, '1'));
console.log(Object.is(NaN, NaN));
// Object.assign(目标对象,源对象1,源对象2.....)函数 函数作用:将源对象的属性赋值到目标对象上 会改变目标对象
var obj1 = { name: 'ls' }
// 深拷贝:原始对象和新的对象是完全独立的,对一个对象的修改不会影响到另一个对象
var obj3 = Object.assign({}, obj1)
obj3.name = 'asdasdasdas'
console.log(obj1);
console.log(obj3);
// var obj2 = { age: 18 }
// console.log(Object.assign(obj1, obj2));
// console.log(obj1);
// console.log(obj2);
// var obj3 = obj1
// obj3.name = 'asdasd'
// console.log(obj1);
// console.log(obj3);
// 获取对象中的属性值
console.log(Object.values(obj));
// 获取对象中的属性名
console.log(Object.keys(obj));