数据为空在程序开发里面是很常见的,感觉只有 JS 最复杂,数据为空也有很多种情况,例如下面的值:
// var a = "";
// var a = " ";
// var a = null;
// var a = undefined;
// var a = [];
// var a = {};
// var a = NaN;
我们分别来说说这些值是怎么来的:
1、直接定义一个变量,给他复制空字符串,类型为 String
2、和上面的一样,只不过值是一个空格或者是多个空格
3、这个就和上面的有本质上的区别了,NULL 代表声明了一个空对象,不是一个字符串,可以赋给任何对象。
4、undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined。
5、空数组
6、空对象,但是不是null(null其实是表示尚未存在的对象,而{}才代表一个真正的空对象,即表示其中没有数据)
7、最后一个通常是数学计算的时候,无法得到一个数字就直接返回NAN
下面来看看判断方法
if(a === undefined) { // 只能用 === 运算来测试某个值是否是未定义的
console.log("为undefined");
}
if(a == null) { // 等同于 a === undefined || a === null
console.log("为null");
}
// String
if(a == "" || a == null || a == undefined){ // "",null,undefined
console.log("为空");
}
if(!a){ // "",null,undefined,NaN
console.log("为空");
}
if(!$.trim(a)){ // "",null,undefined
console.log("为空");
}
// Array
if(a.length == 0){ // "",[]
console.log("为空");
}
if(!a.length){ // "",[]
console.log("为空");
}
// Object {}
if($.isEmptyObject(a)){ // 普通对象使用 for...in 判断,有 key 即为 false
console.log("为空");
}