在 ES12 中,新加入了一种逻辑赋值运算符(Logical Assignment Operator),它能够让你的代码更加简洁易读。本文将介绍这个新特性的用法和示例。
什么是 Logical Assignment Operator
Logical Assignment Operator 是一种结合了逻辑运算符和赋值运算符的新型运算符。它可以将逻辑运算和赋值运算合并成一个语句,让代码更加简洁易读。
在 ES12 中,Logical Assignment Operator 有三种形式:
||=
:逻辑或赋值运算符&&=
:逻辑与赋值运算符??=
:空值合并赋值运算符
逻辑或赋值运算符
逻辑或赋值运算符(||=
)的作用是,如果左侧的变量为 false 或者 undefined,就将右侧的值赋给它。
下面是一个示例:
let a; a ||= 1; console.log(a); // 输出 1 let b = 2; b ||= 3; console.log(b); // 输出 2
在上面的代码中,变量 a
的值为 undefined,所以 a ||= 1
的结果就是将 1 赋给 a
。而变量 b
的值为 2,所以 b ||= 3
的结果是不会改变 b
的值。
逻辑与赋值运算符
逻辑与赋值运算符(&&=
)的作用是,如果左侧的变量为 true 或者 null,就将右侧的值赋给它。
下面是一个示例:
let a = null; a &&= 1; console.log(a); // 输出 null let b = true; b &&= 3; console.log(b); // 输出 3
在上面的代码中,变量 a
的值为 null,所以 a &&= 1
的结果是不会改变 a
的值。而变量 b
的值为 true,所以 b &&= 3
的结果就是将 3 赋给 b
。
空值合并赋值运算符
空值合并赋值运算符(??=
)的作用是,如果左侧的变量为 null 或者 undefined,就将右侧的值赋给它。
下面是一个示例:
let a; a ??= 1; console.log(a); // 输出 1 let b = null; b ??= 2; console.log(b); // 输出 2
在上面的代码中,变量 a
的值为 undefined,所以 a ??= 1
的结果就是将 1 赋给 a
。而变量 b
的值为 null,所以 b ??= 2
的结果是将 2 赋给 b
。
总结
Logical Assignment Operator 是一个非常实用的新特性,可以让我们的代码更加简洁易读。它的用法也非常简单,只需要将逻辑运算符和赋值运算符合并到一起即可。
但是需要注意的是,Logical Assignment Operator 只能用于 ECMAScript 2021 或更高版本的 JavaScript 中。如果你的项目还在使用旧版本的 JavaScript,那么就无法使用这个新特性。
希望本文对你有所帮助,如果你还有什么问题或者建议,欢迎留言交流!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/658df02feb4cecbf2d3d12d2