最近开发,对0判定为false真的深恶痛绝,经常因为0的原因一不小心就判断错误了。
当有地方需要判断空字符串的同时,又要排除0的干扰,让Number类型的0跳过判断,就不得不写一长串的判断 如(a !=='undefined' && a !== null )诸如此类的判断从而佢跳过0、‘’(空字符串)、false的判断。
但最近看到Null 判断运算符(??)这个的时候才感觉省了不少事。对这个运算符,我看别人是这么解释的 :读取对象属性的时候,如果某个属性的值是null或undefined,有时候需要为它们指定默认值。常见做法是通过||运算符指定默认值。 它的行为类似||,但是只有运算符左侧的值为null或undefined时,才会返回右侧的值。
如下:
1 、const a = 0 ( ' ' 、false )
const b = a ?? ' 前面判断不成立 '
console.log(b) // 0 ( ' ' 、false)
2 、 const a = undefined/null
const b = a ?? ' 前面判断不成立 '
console.log(b) // ' 前面判断不成立 '
总而言之,用这个空值合并操作符能方便的排除null/undefined的判断,让Number0正常走正确判断逻辑!