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 ...不仅用在数组上,还可以用在对象上。还可以使用...对对象的拷贝。类似于深拷贝拷贝一个对象,对象之间互相不干佬,也可以对对象合并。
一个前端小白,若文章有错误内容,欢迎大佬指点讨论!