业务中的非空判断

You, web development
Back

在最开始的时候我们经常使用 || 操作符 来进行非空判断,如下

number || '-'

这么处理会有个问题,如果 number 值为 0,则也会得出 -。这样肯定是不对的,没道理用户输入 0 你最后给他显示却是 - 当然熟悉 es 规范的同学,会利用 es9 的空值判断符 ?? 来处理 nullundefined 的情况,如下

number ?? '-'

这时我们可以得出正确的结果 0 了 但是如果当 number 不为空时需要对它进行处理呢,例如只保留两位小数点?会是像下例中那样处理么

number ? number.toFixed(2) : '-'

但这样问题又回到了用 || 操作符 的问题,0 还是会被判断为空

那么,有没有办法,既能判断非空判断,又不用写一堆判断条件呢? 那必须有!可以利用相等操作符来判断是否值为 null 来进行空值判断,如下

null == null // true
undefined == null // true
0 == null // false
false == null // false

// 所以上面的判断条件我们可以写出
number == null ? '-' : number.toFixed(2)
// 或
number != null ? number.toFixed(2) : '-'
© liaoliao666.