在 ECMAScript 2021 中,有一种新的操作符被加入到了语言规范里,那就是 Logical Assignment Operators(逻辑赋值运算符)。这些新的操作符使用起来非常方便,可以让代码更加精简易读。在本文中,我们将为您介绍这些新的操作符,并通过示例代码来演示它们的使用。
逻辑复合赋值操作符
在过去,我们可能需要这样写代码:
let a = true; let b = false; a = a && b;
但是在 ECMAScript 2021 中,我们可以使用逻辑复合赋值操作符 &&=,将上面的代码写成这样:
let a = true; let b = false; a &&= b;
这样的代码更简洁,同时也更具可读性。逻辑复合赋值操作符可以将两个逻辑表达式(或者说操作数)合并成一个。如果左侧的操作数返回 false,则右侧的操作数将不会被执行。在上面的代码中,只要 a 返回 false,我们就不需要执行 b 的赋值操作了。
逻辑复合赋值操作符也可以用于字符串和数字类型。以下是一些示例:
let str = "Hello"; str &&= "World"; console.log(str); // "World" let num = 5; num &&= 10; console.log(num); // 10
逻辑赋值操作符
除了逻辑复合赋值操作符,ECMAScript 2021 还引入了逻辑赋值操作符 ||= 和 ??=。它们的作用和逻辑复合赋值操作符类似,但是它们使用的是或和空值合并运算符。如果左侧操作数返回 true(或非 null/undefined),则右侧操作数不会被执行。否则,右侧操作数将被赋值给左侧操作数。
下面是一些使用逻辑赋值操作符的示例:
-- -------------------- ---- ------- --- - - ----- - --- -------- --------------- -- ------- --- - - -- - --- -- --------------- -- - --- -- - --- -------- --------------- -- -------
在上面的代码中,第一个示例中,a 是 null,因此它被赋值为 "Hello"。在第二个示例中,b 是 0,这不是一个空值(null/undefined),但它可以被认为是 false,所以它被赋值为 5。最后一个示例中,c 是未定义的变量,因此它被赋值为 "World"。
总结
逻辑复合赋值操作符、逻辑赋值操作符和空值合并运算符一起构成了 ECMAScript 2021 中的新特性。这些新的操作符可以让我们的代码更加简洁易读。在实际开发中,我们可以根据需要选择适当的操作符来优化我们的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a670a148841e989430e0e7