返回 全局
ES2021 新特性抢鲜知,点亮你的代码新篇章
前端
2023-11-16 16:18:41
ES2021 新特性概览
ES2021 引入了许多新特性,其中包括:
- 可选链操作符 (
?.
):允许您安全地访问嵌套对象的属性,而无需担心null
或undefined
值导致的错误。 - 空值合并运算符 (
??
):允许您为变量指定一个默认值,如果变量的值为null
或undefined
,则使用默认值。 - 数字分隔符:允许您在数字中添加分隔符,以提高代码的可读性。
- 逻辑赋值运算符 (
&&=
、||=
、??=
):允许您使用更简洁的语法来更新变量的值。 - 全局
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,那么现在是时候开始学习和使用了。