一,对象的简写
1.属性简写
{
let abr='abbreviation'
let obj={abr} // 相当于 {abr:abr}
console.log(obj) // {abr: "abbreviation"}
}
2.方法简写
{
let a='abbreviation'
let obj={abr(){return a}} // 相当于 {abr:function(){return a}}
console.log(obj.abr()) // "abbreviation"
}
二,对象的属性表达式
1.在ES5
中只能使用字面量方式定义属性名,而在ES6
中可使用表达式来定义属性名。
{
let n = 'age';
let obj = {
name:'max',
[n]:21,
['se'+'x']:'female'
}
console.log(obj) // {name: "max", age: 21,sex: "female"}
}
三,新增API
1.Object.is()
和===
功能一样,判断左右两边是否相等。
两者的区别:NaN===NaN
返回false
,而Object.is(NaN,NaN)
返回true
{
console.log(Object.is('abc','abc')) // true
console.log(Object.is([1,2],[1,2])) // false ,数组是引用类型,虽然值相等,但引用地址不相等
}
2.Object.assign()
浅拷贝,
3.Object.keys()
返回一个数组,包含对象所有的键
{
let obj={a:1,b:2,c:3}
let iter = Object.keys(obj)
console.log(iter) // ['a','b','c']
}
4.Object.values()
返回一个数组,包含对象所有的值
{
let obj={a:1,b:2,c:3}
let iter = Object.values(obj)
console.log(iter) // [1, 2, 3]
}
5.Object.entries()
返回一个二维数组,数组元素是包含对象的键值的数组
{
let obj={a:1,b:2,c:3}
let iter = Object.entries(obj)
console.log(iter) // [["a", 1],["b", 2],["c", 3]]
}