最全Es6 - Es11( Es10篇)

文末有其他篇链接

Es10

1、对象方法扩展

Object.fromEntries()
Object.fromEntries() 方法接收一个键值对的列表参数,并返回一个带有这些键值对的新对象。这个迭代参数应该是一个能够实现@@iterator方法的的对象,返回一个迭代器对象。它生成一个具有两个元素的类数组的对象,第一个元素是将用作属性键的值,第二个元素是与该属性键关联的值。
Object.fromEntries() 执行与 Object.entries 互逆的操作。

通过 Object.fromEntries, 可以将 Map 转换为 Object:

const map = new Map([ ['foo', 'bar'], ['baz', 42] ]);
const obj = Object.fromEntries(map);
console.log(obj); // { foo: "bar", baz: 42 }

通过 Object.fromEntries, 可以将 Array 转换为 Object:

const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
const obj = Object.fromEntries(arr);
console.log(obj); // { 0: "a", 1: "b", 2: "c" }

2、字符串方法扩展

String.prototype.trimStart()
trimStart() 方法从字符串的开头删除空格。trimLeft() 是此方法的别名。返回一个新字符串,表示从其开头(左端)除去空格的调用字符串。

var str = "   foo  ";

console.log(str.length); // 8

str = str.trimStart()    // 等同于 str = str.trimLeft();
console.log(str.length); // 5
console.log(str);        // "foo  "

String.prototype.trimEnd()
trimEnd() 方法从一个字符串的末端移除空白字符。trimRight() 是这个方法的别名。返回一个新字符串,表示从调用字串的末(右)端除去空白。

var str = "   foo  ";

alert(str.length); // 8

str = str.trimRight();  // 或写成str = str.trimEnd();
console.log(str.length); // 6
console.log(str);       // '   foo'

3、数组方法扩展

Array.prototype.flat()
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
语法:var newArray = arr.flat([depth]) (depth指定要提取嵌套数组的结构深度,默认值为 1。)

const arr1 = [0, 1, 2, [3, 4]];

console.log(arr1.flat());
// output: [0, 1, 2, 3, 4]

const arr2 = [0, 1, 2, [[[3, 4]]]];

console.log(arr2.flat(2));
// output: [0, 1, 2, [3, 4]]

Array.prototype.flatMap()
flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 连着深度值为1的 flat 几乎相同,但 flatMap 通常在合并成一种方法的效率稍微高一些。
flatMap 方法与 map 方法和深度depth为1的 flat 几乎相同.

var arr1 = [1, 2, 3, 4];

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

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

// only one level is flattened
arr1.flatMap(x => [[x * 2]]);
// [[2], [4], [6], [8]]

4、Symbol属性扩展

Symbol.prototype.description
description 是一个只读属性,它会返回 Symbol 对象的可选描述的字符串。

console.log(Symbol('desc').description);
// output: "desc"

console.log(Symbol.iterator.description);
// output: "Symbol.iterator"

console.log(Symbol.for('foo').description);
// output: "foo"

console.log(`${
      
      Symbol('foo').description}bar`);
// output: "foobar"

上一篇:最全Es6 - Es11( Es9篇)
下一篇:最全Es6 - Es11( Es11篇)

猜你喜欢

转载自blog.csdn.net/weixin_44646763/article/details/124917187
今日推荐