在上个月(2020.6),es11的特性已经确定了,具体的提案戳这 stage4提案
下面来简单看看es11新增了什么特性吧
1.BigInt
我们知道,js 能表示的安全整数范围是-(2^53-1)至 2^53-1,这是由 js 存储数字的方式决定的,我们可以用Number.isSafeInteger()来判断某个数是否在这个范围内,上下边界可以用Number.MIN_SAFE_INTEGER 和 Number.MAX_SAFE_INTEGER得到。
es11为了解决大数问题,推出了新的数据类型BigInt。这种数据类型可以进行大整数运算,但是注意,BigInt和普通的Number类型不能进行运算。
可以用BigInt的构造函数或者在数字后面加一个后缀n来得到BigInt。
let a = BigInt(123);
let b = 1212n;
let a = Number.MAX_SAFE_INTEGER;
console.log(a + 1 === a + 2); //true
let b = 9007199254740992n;
let c = b + 1n;
b === c; //false
typeof b; //bigint
如果BigInt和普通的Number数据进行运算会报错
let d = 1n;
d + 1;