业务中的非空判断
在最开始的时候我们经常使用 ||
操作符 来进行非空判断,如下
number || '-'
这么处理会有个问题,如果 number 值为 0
,则也会得出 -
。这样肯定是不对的,没道理用户输入 0 你最后给他显示却是 -
当然熟悉 es 规范的同学,会利用 es9 的空值判断符 ??
来处理 null
和 undefined
的情况,如下
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.