ECMAScript 2019(简称 ES10)发布于2019年6月,在本篇文章中将会详细讲解 ES10 带来的一些新特性。
数组的 flat 和 flatMap 方法
在 ES10 中,数组原型新增加了 flat
和 flatMap
方法。 flat
将多层嵌套的数组扁平化成一维数组,flatMap
则是先执行 map
方法,然后再执行一次 flat
方法。
flat 方法
flat
方法有一个可选的参数 depth
,用来指定需要扁平化的层数。
例如:
const arr = [1, [2, [3, 4]]]; arr.flat(); // [1, 2, [3, 4]] arr.flat(2); // [1, 2, 3, 4]
flatMap 方法
flatMap
方法是 map
方法的一个变体,它将每个元素映射到一个新数组,然后将这些数组压缩成一个数组,并返回。
例如:
const arr = [1, 2, 3]; arr.flatMap(x => [x * 2]); // [2, 4, 6]
String 的 trimStart 和 trimEnd 方法
在 ES10 中,String 原型新增了 trimStart
和 trimEnd
方法,它们用于去除字符串的首尾空格。
例如:
const str = ' hello world '; str.trim(); // 'hello world' str.trimStart(); // 'hello world ' str.trimEnd(); // ' hello world'
Object.fromEntries 方法
在 ES10 中,Object 新增了一个名为 fromEntries
的静态方法,该方法接受一个键值对的数组,将其转换为一个对象。该方法的作用与 Object.entries()
方法相反。
例如:
const arr = [['key1', 'value1'], ['key2', 'value2']]; const obj = Object.fromEntries(arr); // obj:{ key1: 'value1', key2: 'value2' }
catch 和 throw 中省略参数
在 ES10 中,可以在 catch
中省略参数,表示不关心捕获的错误对象。
例如:
try { // some code } catch { // handle error }
同时,还可以在 throw
中省略参数,表示抛出一个空的错误对象。
例如:
throw new Error(); // 正常抛出一个错误 throw new Error; // 与上面代码效果相同,抛出一个空的错误对象
新的 Function.toString 方法
在 ES10 中,Function.toString
方法被修改,对于一些内置的函数,其返回值会变为 "[native code]",而不是函数体的字符串。
例如:
function sum(a, b) { return a + b; } sum.toString(); // 'function sum(a, b) { return a + b; }' setTimeout.toString(); // 'function setTimeout() { [native code] }'
数学函数中的舍入函数
在 ES10 中,Math 增加了四个舍入函数,分别是 Math.trunc
、Math.sign
、Math.cbrt
和 Math.clz32
。
其中,Math.trunc
用于将数字的小数部分去除,返回整数部分,Math.sign
用于返回数字的符号,Math.cbrt
用于求出数字的立方根,Math.clz32
用于返回数字的32位二进制形式中,前导零的个数。
例如:
Math.trunc(3.15); // 3 Math.sign(-3); // -1 Math.cbrt(27); // 3 Math.clz32(1); // 31
总结
以上就是 ES10 新特性的介绍,随着 ES 的不断更新,它一直在完善和进化,越来越适应现代的开发需求。学习和掌握新特性,对于我们前端开发者来说是非常必要的,它能够提高我们的工作效率,并且帮助我们更好的应对现代的开发场景。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ab673148841e989473a670