本文主要介绍 es10 的新特性。
数组方法 Array.flat() 和 Array.flatMap
Array.flat()
方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。Array.flatMap()
方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 和 深度值1的 flat 几乎相同,但 flatMap 通常在合并成一种方法的效率稍微高一些。// Array.flat() 示例: let arr = [1, 2, [3, 4, [5, 6, 7, [8, 9]], 10]] arr.flat(); // [1, 2, 3, 4, Array(4), 10] 效果等于 arr.flat(1) arr.flat(2); // [1, 2, 3, 4, 5, 6, 7, Array(2), 10] arr.flat(3); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] arr.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] // Array.flatMap() 示例: let arr1 = [1, 2, 3, 4, 5]; arr1.map(x => [x, x * 2]); // [Array(2), Array(2), Array(2), Array(2), Array(2)] // 0: (2) [1, 2] // 1: (2) [2, 4] // 2: (2) [3, 6] // 3: (2) [4, 8] // 4: (2) [5, 10] arr1.flatMap(x => [x, x * 2]); //[1, 2, 2, 4, 3, 6, 4, 8, 5, 10]
Object.fromEntries()
Object.fromEntries()
方法把键值对列表转换为一个对象。let obj = { apple : 10, orange : 20, banana : 30 }; let entries = Object.entries(obj); // 0: (2) ["apple", 10] // 1: (2) ["orange", 20] // 2: (2) ["banana", 30] let fromEntries = Object.fromEntries(entries); // {apple: 10, orange: 20, banana: 30}
- 字符串方法:trimStart 和 trimEnd
trimStart()
删除字符串的开头空格。trimEnd()
删除字符串末尾的空格。let s1 = ' 你好呀~ '; s1.trimStart() // "你好呀~ " s1.trimEnd() // " 你好呀~" s1.trimStart().trimEnd() // "你好呀~"
- try { } catch {} // catch 的参数可以省略了
在过去,try/catch
语句中的catch
语句需要一个变量。try/catch
语句帮助捕获终端级别的错误。在 ES10 中,捕获错误的变量是可选的,现在可以跳过错误变量:try { return true; } catch { return false; }