
ES10(ES2019)新特性
文章类型:Javascript
发布者:hp
发布时间:2025-03-07
1:Array.prototype.flat()和Array.prototype.flatMap():用于平铺嵌套数组。
const arr = [1, [2, 3]];
console.log(arr.flat(2)); // [1, 2, 3]
console.log(arr.flatMap(x => [x * 2])); // [2, 4, 6]
2:String.prototype.trimStart()和String.prototype.trimEnd():用于去除字符串开头或结尾的空白。
const str = " Hello ";
console.log(str.trimStart()); // "Hello "
console.log(str.trimEnd()); // " Hello"
3:Optional catch binding:允许省略 catch 块的绑定参数。
try {
// ...
} catch {
console.log("发生错误");
}
4:Function.prototype.toString():返回精确的函数源代码字符串。
function foo() {
// es10新特性
console.log('imooc')
}
console.log(foo.toString())
// 直接在方法名toString()
console.log(Number.parseInt.toString())
5:Symbol.prototype.description:访问symbol的描述。
const sym = Symbol("desc");
console.log(sym.description); // "desc"
6:Object.fromEntries():将键值对列表(如 Map 或二维数组)转换为对象
const entries = [["a", 1], ["b", 2]];
console.log(Object.fromEntries(entries)); // { a:1, b:2 }
7:动态 import() 函数:在运行时按需异步加载模块。
const module = await import("./module.js");
1:数据处理:flat() 和 flatMap() 简化多维数组操作12。
:2:对象转换:Object.fromEntries() 与 Object.entries() 配合实现对象与 Map 互转12。
:3:错误处理:可选 catch 绑定减少冗余代码