语法糖 ?, ??
- ?.
?,解决了 const value = a&&a.b&&a.b.c的问题
也就是当 不确定a是一个对象的时候,防止报 b of undefind的错误
因此 有了 ?.
//const a = 1 ;console.log(a?.b) // undefined 但不会报错console.log(a?.b?.c) // undefined 但不会报错const a2 = {b:1}console.log(a2?.b) // 1console.log(a?.b?.c) // undefined 但不会报错
- ??
?? 是为了解决不能用 || 的场景
因为 a || b, 当a == false的时候,会取b的值;
而有些时候我们希望,只要a是有值的,就取a的值,而不是b;
那么 就可以用到 ??
const a = '';const b = 44;console.log(a||b); // 44console.log(a??b); // ''
扩展Promise的方法
Promise.allsettled 解决了 Promiss.all的api缺陷(Promise类篇有详解);
BigInt
新增的数据类型;
JavaScript 中 Number 类型只能安全的表示-(2^53-1)至 2^53-1 范的值,即 Number.MIN_SAFE_INTEGER 至 Number.MAX_SAFE_INTEGER,超出这个范围的整数计算或者表示会丢失精度。
新增了BigInt类型,解决了这一问题
