ES2021 的操作符王国——你从不知道的神奇操作符们
2023-12-20 16:07:00
ES2021 是 JavaScript 的最新版本,它带来了许多新的特性和改进,其中包括一些新的操作符。这些新的操作符可以让你更简洁地编写代码并提高可读性,也可以让你做一些令人惊叹的事情。
今天就来了解一些鲜为人知但很有用的 ES2021 中的新操作符,来扩展你的 JavaScript 知识库,你的代码将成为艺术品。
nullish 合并运算符 (??) ?
nullish 合并运算符 (??) 是一个新的运算符,它允许你检查一个值是否为 null 或 undefined。如果该值为 null 或 undefined,则返回指定的默认值。否则,返回该值本身。
例如,以下代码使用 nullish 合并运算符来检查变量 name
是否为 null 或 undefined。如果 name
为 null 或 undefined,则返回字符串 "John Doe",否则返回变量 name
的值。
const name = null;
const fullName = name ?? "John Doe";
console.log(fullName); // 输出: "John Doe"
可选链式运算符 (?.)
可选链式运算符 (?.) 允许你访问对象属性或调用对象方法,而无需检查该对象是否为 null 或 undefined。如果对象为 null 或 undefined,则返回 undefined。否则,返回该属性的值或方法的返回值。
例如,以下代码使用可选链式运算符来访问对象 user
的属性 name
。如果对象 user
为 null 或 undefined,则返回 undefined。否则,返回字符串 "John Doe"。
const user = null;
const name = user?.name;
console.log(name); // 输出: undefined
**逻辑赋值运算符 (&&=, ||=)**
逻辑赋值运算符 (&&=, ||=) 是两个新的赋值运算符,它们允许你将一个值与一个布尔表达式结合起来赋值给一个变量。
&&= 运算符将一个值与一个布尔表达式结合起来赋值给一个变量,如果布尔表达式为 true,则赋值,否则不赋值。
||= 运算符将一个值与一个布尔表达式结合起来赋值给一个变量,如果布尔表达式为 false,则赋值,否则不赋值。
例如,以下代码使用 &&= 运算符将字符串 "John Doe" 赋值给变量 name
,如果变量 user
不为 null 或 undefined。
let user = { name: "John Doe" };
let name;
user &&= { name: "Jane Doe" };
console.log(name); // 输出: "John Doe"
例如,以下代码使用 ||= 运算符将字符串 "John Doe" 赋值给变量 name
,如果变量 user
为 null 或 undefined。
let user = null;
let name;
user ||= { name: "John Doe" };
console.log(name); // 输出: "John Doe"
结束语
ES2021 中的新操作符非常强大,可以让你更简洁地编写代码并提高可读性,也可以让你做一些令人惊叹的事情。今天介绍的只是其中的一部分,还有很多其他有趣的新操作符值得探索。赶快去了解并使用这些新操作符,让你的 JavaScript 代码更加强大。