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 绑定减少冗余代码‌