ES2021之标准新增

140 阅读2分钟

这是我参与11月更文挑战的第28天,活动详情查看:2021最后一次更文挑战

标准新增

ES2021的标准增加了:

  1. logical-assignment-operators即逻辑赋值运算符
  2. proposal-numeric-separator即数字分隔符 这篇文章我们就来了解一下ES2021的两个新增标准。

逻辑赋值运算符

逻辑赋值运算符:当前值为falsy)的时候用来赋值。这里我们需要知道的是 falsy 不是 false值是在布尔上下文中遇到时被视为 false[的值],如下:

false
0
-0
0n
""  ''  ``  ,,
null
undefined
NaN
document.all

逻辑 或

那么我们的运算符又该怎么使用呢,如下:

const obj={
    name:"也笑"
}

obj.name ||= "slifree";
obj.age ||= 812;

console.log(obj.name); // 也笑
console.log(obj.age);// 812

我们知道逻辑运算符会(||)短路,其实,逻辑赋值运算符也会短路,这意味着仅当逻辑运算将评估右侧时,它才会执行赋值。也就说下述表达式:

x ||= y
等价于
x || (x=y)

逻辑 与

同逻辑或对比,表达式使用如下:

x &&= y
等价于
x && (x=y)

也就是说当前值为truthy的时候,才会进行赋值操作,如下:

let a=1;
a &&=2; // a=2

数字分隔符

为了提高数字文本的可读性,下划线 (_) 可用作分隔符,使用如下:

  1. 十进制数
// 整数
1_000_000_000_000; // 1000000000000

// 小数
2_021.1128; // 2021.1128
  1. 二进制数
0b1010_0001; // 161
  1. 八进制数
0o2_0_2_1; // 1041
  1. 十六进制数
0x1_1_2_8; // 4392
  1. BigInts
1_000_000_000_000_000_000_000n; // 1000000000000000000000n

注意事项

我们需要注意的是:

  1. 逻辑赋值运算就是先进行逻辑操作,如果当前值:或为falsy与为truthy,则对当前值赋值。
  2. 使用数字分隔符的时候,需要注意:
    • 不能连续用_,错误示例:1__1
    • _后面要跟数字,错误示例:100_
    • 不能以0开头,错误示例:0_1

总结

在实际开发中,我们可以以为逻辑赋值操作来减少我们的代码量,可以增加代码的阅读性。

如果你想了解ES的其他特性,请移步到 ES2015+碎片化学习,每天都在向前走一步,这是所有文章的目录入口。