语法糖 ?, ??
- ?.
?,解决了 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) // 1
console.log(a?.b?.c) // undefined 但不会报错
- ??
?? 是为了解决不能用 || 的场景
因为 a || b, 当a == false的时候,会取b的值;
而有些时候我们希望,只要a是有值的,就取a的值,而不是b;
那么 就可以用到 ??
const a = '';
const b = 44;
console.log(a||b); // 44
console.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类型,解决了这一问题