1、遇到的问题
前端项目中,很多情况下,需要判断后端返回的某个属性值是否为空。
例如:
if(data.name!=null){
// TODO
}
if(data.age!=''){
// TODO
}
但是很多情况下,当后台数据为空时,由于各种原因,返回的格式可能参差不齐。有的返回null
,有的返回''
,有的干脆不反回这个属性,也就是undefined
。
if(data.name!=null && data.name!='' && data.name!=undefined){
// TODO
}
显然,这种写法太繁琐。
2、解决方案
所以在这里,我这里我对if判断
进行了统一整理。
test() {
if (null) {
console.log('null---------true');
}
if (undefined) {
console.log('undefined---------true');
}
if ('') {
console.log('空字符串---------true');
}
if (' ') {
console.log('空格---------true');
}
if (0) {
console.log('数字0---------true');
}
if (1) {
console.log('数字1---------true');
}
if ('0') {
console.log('0字符串---------true');
}
if ('1') {
console.log('1字符串---------true');
}
if (NaN) {
console.log('NaN---------true');
}
if ({}) {
console.log('空对象---------true');
}
},
打印结果:
空格---------true
数字1---------true
0字符串---------true
1字符串---------true
空对象---------true
总结:if条件判断false的情况有null, undefined,'',0,NaN
,以及false