返回

ES2021 的操作符王国——你从不知道的神奇操作符们

前端

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 代码更加强大。