ES12 中新增的逻辑赋值操作符等新特性

阅读时长 4 分钟读完

在前端开发中,JavaScript 是一门非常重要的编程语言。随着时间的推移,JavaScript 的版本也在不断更新,其中 ES12 (ECMAScript 2021)是最新的版本。ES12 中新增了很多新特性,其中逻辑赋值操作符是一个非常实用的特性。

逻辑赋值操作符

在 ES12 中,新增了三个逻辑赋值操作符,分别是 ||=, &&=, ??=。这三个操作符可以将一个变量与另一个值进行逻辑运算,并将结果赋值给该变量。

||= 操作符

||= 操作符表示“或等于”,它可以将一个变量与一个值进行逻辑或运算,如果变量的值为假(falsenullundefined0NaN""),则将该值赋给变量,否则不进行任何操作。

在上面的例子中,第一个 ||= 操作符将 null 赋值给 x,因为 null 为假值;而第二个 ||= 操作符不会改变 y 的值,因为 y 的值为真值。

&&= 操作符

&&= 操作符表示“与等于”,它可以将一个变量与一个值进行逻辑与运算,如果变量的值为真(非假值),则将该值赋给变量,否则不进行任何操作。

在上面的例子中,第一个 &&= 操作符将 "world" 赋值给 x,因为 x 的值为真值;而第二个 &&= 操作符不会改变 y 的值,因为 y 的值为假值。

??= 操作符

??= 操作符表示“空值合并等于”,它可以将一个变量与一个值进行空值合并运算,如果变量的值为 nullundefined,则将该值赋给变量,否则不进行任何操作。

在上面的例子中,第一个 ??= 操作符将 "hello" 赋值给 x,因为 x 的值为 null;而第二个 ??= 操作符不会改变 y 的值,因为 y 的值不为 nullundefined

其他新特性

除了逻辑赋值操作符外,ES12 还新增了很多其他的新特性,例如:

Promise.any()

Promise.any() 方法接收一个 Promise 数组作为参数,返回一个新的 Promise 对象。这个新的 Promise 对象在数组中的任意一个 Promise 对象解决(resolve)或拒绝(reject)时,都会解决或拒绝,并返回解决或拒绝的值。

-- -------------------- ---- -------
----- -------- - -
  --------------------- ----
  ---------------------------
  --------------------- ---
--

---------------------
  ------------ -- --------------------
  ------------ -- ---------------------- -- ---------

在上面的例子中,Promise.any() 方法接收一个包含三个 Promise 对象的数组作为参数。第一个和第三个 Promise 对象被拒绝,而第二个 Promise 对象被解决。因为 Promise.any() 方法只要有一个 Promise 对象被解决就会返回,所以返回的值为第二个 Promise 对象的解决值。

数组的 at() 方法

数组的 at() 方法可以返回指定索引位置的元素,如果索引为负数,则从数组末尾开始计算。

在上面的例子中,arr.at(2) 返回数组中索引为 2 的元素 "c",而 arr.at(-1) 返回数组中倒数第一个元素 "d"

总结

ES12 中新增的逻辑赋值操作符、Promise.any() 方法和数组的 at() 方法都是非常实用的新特性。掌握这些新特性可以让我们更加高效地编写 JavaScript 代码。在实际开发中,我们可以根据具体的情况选择使用这些新特性,从而提高代码的可读性和可维护性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/662a1159c9431a720c7aa3ec

纠错
反馈