js中的假值
•
undefined
•
null
•
false
•
+0
、
-0
和
NaN
•
""
"0" == null; // false
"0" == undefined; // false
"0" == false; // true -- 晕!
"0" == NaN; // false
"0" == 0; // true
"0" == ""; // false
false == null; // false
false == undefined; // false
false == NaN; // false
false == 0; // true -- 晕!
false == ""; // true -- 晕!
false == []; // true -- 晕!
false == {}; // false
"" == null; // false
"" == undefined; // false
"" == NaN; // false
"" == 0; // true -- 晕!
"" == []; // true -- 晕!
"" == {}; // false
0 == null; // false
0 == undefined; // false
0 == NaN; // false
0 == []; // true -- 晕!
0 == {}; // false
拓展假值: [] {}
/**
* 判断变量是否空值
* undefined, null, '', false, 0, [], {} 均返回true,否则返回false
*/
export const empty = (v) => {
switch (typeof v) {
case 'undefined' :
return true;
case 'string' :
if (v.trim().length === 0) return true;
break;
case 'boolean' :
if (!v) return true;
break;
case 'number' :
if (v === 0) return true;
break;
case 'object' :
if (v === null) return true;
if (undefined !== v.length && v.length === 0) return true;
for (const k in v) {
return false;
}
return true;
}
return false;
};