ES10-2019

1. Array.prototype.flat()

  • flat() 方法会递归地将一个嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。
;[1, 2, [3, 4]].flat() // [1, 2, 3, 4]

2. Array.prototype.flatMap()

  • flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 和 深度值 1 的 flat 几乎相同,但 flatMap 通常在合并成一种方法的效率更高。
const arr1 = [1, 2, 3, 4]

arr1.flatMap((x) => [x * 2]) // [2, 4, 6, 8]

3. String.prototype.trimStart() String.prototype.trimEnd()

  • trimStart() 方法从一个字符串的开头删除空白字符。trimLeft() 是该方法的别名。

  • trimEnd() 方法从一个字符串的末尾删除空白字符。trimRight() 是该方法的别名。

'   foo  '.trimStart() // 'foo  '
'   foo  '.trimEnd() // '   foo'

4. Object.fromEntries()

  • Object.fromEntries() 方法是 Object.entries() 的逆操作,用于将一个键值对数组转为对象。
Object.fromEntries([
  ['foo', 'bar'],
  ['baz', 42],
]) // { foo: "bar", baz: 42 }

5. Symbol.prototype.description

  • Symbol.prototype.description 方法返回一个字符串,表示该 Symbol 对象的描述。
const sym = Symbol('foo')

sym.description // "foo"

6. Function.prototype.toString()

  • Function.prototype.toString() 方法返回一个字符串,表示指定的函数的源代码。
function foo() {
  return 123
}

foo.toString() // "function foo() { return 123 }"

7. globalThis

  • globalThis 属性提供了对全局 this 值的标准化访问方法。
// 在浏览器中

globalThis === window // true

// 在 Web Workers 中

globalThis === self // true

// 在 Node.js 中

globalThis === global // true