二十三、ES10 新特性
大约 1 分钟约 378 字
(一)对象方法扩展 —— Object.fromEntries()
- 创建一个对象,方法参数可以是一个二维数组,也可以是一个
Map
对象
1.二维数组
const res1 = Object.fromEntries([
["name", "ikuko"],
["skill", "前端, PHP"],
]);
console.log(res1);
// {name: 'ikuko', skill: '前端, PHP'}
2.Map 对象
const m = new Map();
m.set("name", "ikuko");
// 数组转为对象
const res2 = Object.fromEntries(m);
console.log(res2);
// {}
// {name: 'ikuko'}
// 对象转为数组(ES8)
const arr = Object.entries({
name: "ikuko",
});
console.log(arr);
// [Array(2)]
// 0: (2) ['name', 'ikuko']
(二)字符串方法扩展
- ES5:
trim()
1.trimStart()
- 清除字符串左侧空白。
let str = " iLoveU ";
console.log(str);
console.log(str.trimStart());
// iLoveU
// iLoveU
2.trimEnd()
- 清除字符串右侧空白
let str = " iLoveU ";
console.log(str);
console.log(str.trimEnd());
// iLoveU //
// iLoveU//
(三)数组方法扩展
1.flat()
- 降低多维数组的维度
- 参数为数字,表示深度
- 默认参数为 1
const arr1 = [1, 2, 3, 4, [5, 6]];
console.log(arr1.flat());
// (6) [1, 2, 3, 4, 5, 6]
const arr2 = [1, 2, 3, 4, [5, 6, [7, 8, 9]]];
console.log(arr2.flat());
// (7) [1, 2, 3, 4, 5, 6, Array(3)]
console.log(arr2.flat(2));
// (9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
2.flatMap()
- 降低多维
Map
的维度 - 相当于两个操作
flat()
+map()
const arr3 = [1, 2, 3, 4];
const res3 = arr3.map((item) => item * 10);
console.log(res3);
// (4) [10, 20, 30, 40]
const res4 = arr3.map((item) => [item * 10]);
console.log(res4);
// (4) [Array(1), Array(1), Array(1), Array(1)]
const res5 = arr3.flatMap((item) => [item * 10]);
console.log(res5);
// (4) [10, 20, 30, 40]
(四)Symbol 属性扩展 —— Symbol.prototype.description
- 获取
Symbol
的描述字符串
// 创建Symbol
let s = Symbol("ikuko");
console.log(s.description);
// ikuko