返回

ES2021 新特性抢鲜知,点亮你的代码新篇章

前端

ES2021 新特性概览

ES2021 引入了许多新特性,其中包括:

  • 可选链操作符 (?.):允许您安全地访问嵌套对象的属性,而无需担心 nullundefined 值导致的错误。
  • 空值合并运算符 (??):允许您为变量指定一个默认值,如果变量的值为 nullundefined,则使用默认值。
  • 数字分隔符:允许您在数字中添加分隔符,以提高代码的可读性。
  • 逻辑赋值运算符 (&&=||=??=):允许您使用更简洁的语法来更新变量的值。
  • 全局 This 绑定:允许您在函数中使用 this 来访问全局对象。
  • 尾调用优化:允许 JavaScript 引擎在某些情况下优化尾调用,从而提高代码的执行效率。

ES2021 新特性的代码示例

可选链操作符

const user = {
  name: 'John Doe',
  address: {
    street: '123 Main Street',
    city: 'Anytown',
    state: 'CA',
    zip: '12345',
  },
};

// 旧写法
const street = user.address ? user.address.street : undefined;

// 新写法
const street = user?.address?.street;

console.log(street); // 123 Main Street

空值合并运算符

const name = user?.name ?? 'Guest';

console.log(name); // John Doe

数字分隔符

const bigNumber = 12345678901234567890n;

console.log(bigNumber); // 123,456,789,012,345,678,900n

逻辑赋值运算符

let age = 20;

age ||= 30; // age = age || 30

console.log(age); // 20

age ??= 40; // age = age ?? 40

console.log(age); // 20

全局 This 绑定

function myFunction() {
  console.log(this); // 全局对象
}

myFunction();

尾调用优化

function factorial(n) {
  if (n === 0) {
    return 1;
  } else {
    return n * factorial(n - 1);
  }
}

console.log(factorial(5)); // 120

结语

ES2021 是 JavaScript 语言的最新版本,带来了诸多激动人心的新特性。这些新特性可以帮助您编写更简洁、更易读、更高效的代码。如果您还没有开始使用 ES2021,那么现在是时候开始学习和使用了。