31.ES11-BigInt的使用和空值合并运算符和可选链和gl

2022-02-15  本文已影响0人  静昕妈妈芦培培

BigInt

console.log(Number.MAX_SAFE_INTEGER) //9007199254740991
console.log(Number.MAX_SAFE_INTEGER + 1) //9007199254740992
console.log(Number.MAX_SAFE_INTEGER + 2) //9007199254740992 计算并不正确
console.log(90071992547409901) //90071992547409900 输出错误
console.log(90071992547409901n) //90071992547409901n 大数输出正确

BigInt数据类型和Number类型数组进行运算,需要显示的统一类型

const bigNum = 90071992547409901n
const bigNum1 = 999n
const num = 10
console.log(bigNum + BigInt(num)) // 90071992547409911n

//把BigInt数据类型转换为Number类型
console.log(Number(bigNum1) + num) //1009

空值合并运算符??

ES11,Nullish Coalescing Operator增加了空值合并操作符

console.log(null ?? "aaa"); //aaa
console.log(undefined ?? "aaa"); //aaa
console.log(0 ?? "aaa"); //0
console.log("" ?? "aaa"); //
console.log(NaN ?? "aaa"); //NaN

从以上可以看出:只有在??前面的值为null或undefined时,才会使用默认值

const foo = undefined;
const res1 = foo ?? "aaa";
const res1 = foo || "aaa";

可选链?

const info = {
  name: 'why'
}

//ES11之前
if(info.friend && info.friend.girlFriend) {
  console.log(info.friend.girlFriend.name)
}

//使用可选链
console.log(info.friend?.girlFriend?.name) //undefined

globalThis

console.log(globalThis)

非常感谢王红元老师的深入JavaScript高级语法让我学习到很多 JavaScript 的知识

上一篇 下一篇

猜你喜欢

热点阅读