javascript空值合并运算符"??" 是什么意思?最近总是遇到这个运算符‘??’,最开始接触是在pdfjs插件中,遇到它是因为这个插件在linux环境中运行时报错: ?不是一个函数。

场景还原

然后今天在用chatGPT优化以下代码时,发现人工智能推荐使用空值合并运算符,哦!原来这个家伙'??'叫“空值合并运算符”。真是相见恨晚啊!

优化前:

QUI.getBoxRect = function (id = ""){
    let box = !Q.isEmpty(id) ? document.getElementById(id) : document.body
    return box.getBoundingClientRect()
}

优化后:

QUI.getBoxRect = function (id = "") {
  return (document.getElementById(id) ?? document.body).getBoundingClientRect();
}

空值合并运算符

空值合并运算符(??)是ES2020引入的新语法,可用于简化代码。可以使用空值合并运算符来替代判断为空的方法,使代码更加简洁。

理解
空值合并运算符(??)会先执行??之前的代码,如果得到null,undefined 就按照右侧的代码方案执行!

对比逻辑运算符(||)

逻辑运算符||一般是左侧转换为布尔值,并且为假时(“”,null,undefined,0,NaN,false),执行右边,使用场景就是给变量设置默认值。

这样我们今天就又学习了一个前端的新知识点,每次总结都是一次收获!我是陈小知,每天学习进步一点点!