简介
ECMAScript 是一种由 Ecma 国际组织标准化的脚本语言,它被广泛应用于 Web 开发中。随着技术的发展,ECMAScript 的版本也不断更新,新增了许多重要的功能。本文将介绍 ES10 和 ECMAScript 2019 中新增的功能,并提供详细的说明和示例代码,希望可以为前端开发者提供帮助。
可选链运算符
可选链运算符是 ES10 中最重要的新特性之一。在之前的版本中,开发者经常需要通过繁琐的 if 判断来避免 undefined 或 null 值的错误。
例如,在查找一个对象的某个属性时,我们经常需要这样写:
-- ---- -- --------- -- ---------------- - -- -- --------- -
可选链运算符 ?.
可以简化这段代码:
-- ------------------- - -- -- --------- -
当 obj 或 prop1 不存在时,?.
不会报错,而是直接返回 undefined
。
nullish 合并运算符
nullish 合并运算符 ??
是另一个重要的新特性。它可以用来在某些变量为 null 或 undefined 时,提供默认值。
例如,在给变量赋值时,我们经常需要写这样的代码:
--- --- - --- --- ---- -- --- --- --------- - --- - ---------------
使用 nullish 合并运算符,可以简化这段代码:
--- --- - --- -- ---------------
当 bar 为 null 或 undefined 时,??
会返回其右侧的默认值,否则返回 bar 的值。
Promise 的 finally 方法
Promise 的 finally 方法也是 ES10 中新增的新特性之一。它可以在 Promise 执行后,无论是 resolve 还是 reject,都会执行指定的回调函数。
例如:
--------------------------------- -------------- -- - -- ------ ---------- -------- -- ------------ -- - -- ------ ----- -- ----------- -- - -- -- --------- ------- ------- -- ------- ---
在这个例子中,无论 fetch 请求成功还是失败,finally 方法都会被执行。这个特性可以让开发者在 Promise 执行后进行必要的清理工作。
Array 的 flat 和 flatMap 方法
ES10 还新增了 Array 的 flat 和 flatMap 方法,可以用来操作嵌套的数组结构。
flat 可以用来将嵌套的数组结构“打平”,返回一个新的一维数组。例如:
--- --- - --- --- --- --- --- ----- --- ------- - ----------- -- -------- --- -- -- -- --- ---
flat 方法可以接受一个参数,表示要“打平”的层数。默认为 1。
flatMap 方法则可以对数组中的每个元素进行映射,结果再通过 flat 方法“打平”成一维数组。例如:
--- --- - --- -- --- --- ---------- - ------------- -- -- - ---- -- ----------- --- -- --
字符串的 trimStart 和 trimEnd 方法
字符串的 trimStart 和 trimEnd 方法可以分别用来去除字符串开头和结尾的空白字符。
例如:
--- --- - - ------- ------ -- --- ---------- - -------------------------- -- ----------- -------- -------
Object 的 fromEntries 方法
Object 的 fromEntries 方法可以将由键值对组成的数组,转换为一个对象。
例如:
--- ------- - -------- --- ------- ---- --- --- - ---------------------------- -- ---- ----- -- ---- --
该方法可以用来将 URLSearchParams 转换为一个对象,或将一个对象转换为一个数组。
数组和对象的扩展运算符
ES2018 引入了数组和对象的扩展运算符,可以用来将一个数组或对象“打散”成多个元素。
例如:
--- ---- - --- -- --- --- ---- - --- --- --- ------ - --------- --------- -- ------- --- -- -- -- -- --- ---- - - ---- -- ---- - -- --- ---- - - ---- - -- --- ------ - - -------- ------- -- -- ------- ----- -- ---- -- ---- --
这个特性可以用来在函数调用时,将对象的属性“打散”成函数的参数。
结论
本文介绍了 ES10 和 ECMAScript 2019 中新增的一些重要功能,包括可选链运算符、nullish 合并运算符、Promise 的 finally 方法、Array 的 flat 和 flatMap 方法、字符串的 trimStart 和 trimEnd 方法、Object 的 fromEntries 方法,以及数组和对象的扩展运算符。这些新特性可以使开发者编写更简洁、更易读、更高效的代码,并提高生产力。如果你还没有深入了解这些新特性,现在就是个好时机。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66f6f660c5c563ced58d8807