一、 属性的简洁表示法
ES6 允许直接写入变量和函数,作为对象的属性和方法
{x, y}
等价于 {x: x, y: y}
method: function() {
return "Hello!";
}
上下两个方法等价
method() {
return "Hello!";
}
二、属性表达式
ES6 允许字面量定义对象时,用表达式作为对象的属性名,需把表达式放在方括号内
let propKey = 'foo';
let obj = {
[propKey]: true,
['a' + 'bc']: 123
};
三、快速入门案例
<script>
let name ="damu";
let age =18;
let zdy = "wife";
let obj={
name,
age,
[zdy]:"zdy",
eat() {
console.log("超级能吃")
}
}
console.log(obj);
</script>
四、新增API
1、 is
Object.is()方法判断两个值是否是相同的值(等价于 === )
语法:Object.is(value1, value2);
参数:
value1:需要比较的第一个值。
value2:需要比较的第二个值。
返回值:表示两个参数是否相同的Boolean
注意事项:Object.is(NaN, NaN) // true
2、assign
Object.assign()
方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
语法:Object.assign(target, ...sources)
参数:
target:目标对象。
Sources:源对象。
返回值:目标对象。
3、 keys
Object.keys()
方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致
( 区别在于 for-in 循环枚举原型链中的属性 )
语法:Object.keys(obj)
参数:obj要返回其枚举自身属性的对象。
返回值:一个表示给定对象的所有可枚举属性的字符串数组
4、 values
Object.values()
方法返回一个给定对象自己的所有可枚举属性值的数组,值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )
语法:Object. values (obj)
参数:obj要返回其自身枚举属性值的对象。
返回值:一个表示给定对象的所有可枚举属性值的字符串数组
5、 entries
Object.entries()
方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。
语法:Object. values (obj)
参数:obj要返回其自身枚举属性值的对象。
返回值:给定对象自身可枚举属性的键值对数组
6、代码示例:
<script>
/* console.log(Object.is(NaN,NaN));
let obj={}
let obj1={a:"a1",f:"f1"}
let obj2={a:"a2",b:"b2",e:"e2"}
let obj3={a:"a3",b:"b3",c:"c3"}
let obj4 = Object.assign(obj,obj1,obj2,obj3);
console.log(obj,obj4)*/
let obj={
a:'a-val',
b:'b-val',
c:'c-val',
d:'d-val',
e:'e-val'
}
let arr = Object.entries(obj)
console.log(arr)
</script>