判断排除0之外的false
我们使用 if 时,经常会这样使用:
if(!value){
console.log('数据不符合规范!');
return;
}
但这有一个问题,当value的值是0的时候,也会进入if 块中,如何排除0呢?
- 优雅解决方式一,使用 typeof :
if(typeof value !== 'number' && !value){
console.log('数据不符合规范!');
return;
}
- 优雅解决方式二,使用 isNaN :
if(isNaN(value) && !value){
console.log('数据不符合规范!');
return;
}
isNaN用于判断是否为非数字。
会发现,我们要做的就是先排除Number数字类型,再做判断
- 另一种方式就是排除除0之外的所有可能情况:
if(value === undefined || value === '' || value === null){
console.log('数据不符合规范!');
return;
}
是不是不如第一种方式优雅呢,做为有洁癖的程序员,我更建议使用第一种方式。
相关:
- 使用typeof 检测数据类型:
https://blog.csdn.net/zqd_java/article/details/105318575 - 不同类型转换为布尔类型规则:
数据类型 | 转换为true | 转换false |
---|---|---|
String | 非空字符串 | 空字符串("") |
Number | 非0数值 | 0 |
Object | 任意对象包括{}或[] | null |
Undefined | 不存在 | undefined |