ES10 新增功能

Async iterators 迭代器

Object spread operators 对象展开

const obj = {name: 'tom'}
const newObj = {...obj}

Promise finally 方法

flat flatMap 数组降维

flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返。
flatMap() 方法首先使用映射函数映射每个元素 ,然后将结果压缩成一个新数组。

  • flatMap 是先进行map操作,再做flat的操作;
  • flatMap 中的flat相当于深度为1。
    
    // 1. flat的使用
    const nums = [10, 20, [2, 9], [[30, 40], [10, 45]], 78, [55, 88]]
    const newNums = nums.flat()
    // 打印 [10, 20, 2, 9, [30, 40], [10, 45], 78, 55, 88]
    console.log (newNums)
    const newNums2 = nums.flat(2)
    // 打印 [10, 20, 2, 9, 30, 40, 10, 45, 78, 55, 88]
    console. log (newNums2)

// 2. flatMap的使用
const messages = ["Hello World", "hello lyh", "my name is coderwhy"]
const words = messages. flatMap (item => {
// 如果return数组,则会把return的数组降维
return item.split(" ")
})
// ["Hello", "World", "hello", "lyh", "my", "name", "is", "coderwhy"]
console.log (words)


## Object fromEntries
在前面,我们可以通过 Object.entries 将一个对象转换成 entries,那么如果我们有一个 entries 了,如何将其转换成对象呢?
ES10提供了 Object.formEntries 来完成转换:
``` js
const obj = {
  name: "tom"
  age: 18,
  weight: 50,
}
const entries = Object.entries(obj)
// 打印 [['name', 'tom'], ['age', 18 ], ['weight', 50 ]]
console.log(entries)
const newObj = Object.fromEntries(entries)
// 打印{ name: "tom", age: 18, weight: 50 }
console.log(newObj)

trimStart trimEnd

trim 方法差不多,trimStarttrimEnd 是用来分别去除前面或者后面的空白字符。

Symbol description

const s = Symbol('aaa')
// 打印 'aaa'
console.log(s.description)

Optional catch binding

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注