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