ES(8~9) |对象扩展

130 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

ES系列文章

es8对象扩展

Object.key()

//es5
const obj = {
    name: 'imooc',
    web: 'www.imooc.com',
    course: 'es'
}
console.log(Object.keys(obj))
const res = Object.keys(obj).map(key => obj[key])
console.log(res)

Object.values()

Object.values()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值。

const obj = {
    name: 'imooc',
    web: 'www.imooc.com',
    course: 'es'
}
console.log(Object.values(obj))

Object.value只会遍历对象自身的可遍历属性。

Object.entries()

Object.entries方法返回一个数组,成员是参数对象自身的所有可遍历属性的键值对数组。

const obj = {
    name: 'imooc',
    web: 'www.imooc.com',
    course: 'es'
}
console.log(Object.entries(obj))
for(let [key, val] of Object.entries(obj)){
   console.log(`${key}: ${val}`)
}
console.log(Object.entries(['a', 'b', 'c']))

es9对象扩展

Rest & Spread

//es6中对数组的扩展
const arr1 = [1, 2, 3]
const arr2 = [4, 5, 6]
const arr3 = [...arr1, ...arr2]
console.log(arr3)
const obj1 = {
    name: 'xiecheng',
    age: 34
}
const obj2 = {
    school: 'imooc',
    age: 18
}
// 克隆对象
const obj3 = {
    ...obj1
}
obj1.age = 18
console.log(obj3)

// 合并对象
const obj4 = {...obj1, ...obj2}
console.log(obj4)

const obj1 = {
    name: 'xiecheng',
    age: 34,
    school: 'imooc',
    course: 'es'
}

const {name, age, ...rest} = obj1
console.log(name)
console.log(age)
console.log(rest)

对于es9 ...不仅用在数组上,还可以用在对象上。还可以使用...对对象的拷贝。类似于深拷贝拷贝一个对象,对象之间互相不干佬,也可以对对象合并。

一个前端小白,若文章有错误内容,欢迎大佬指点讨论!