JS 非空判断
9月 11, 2021
在 js 中,有一个富有哲学意味的问题:「什么是空」?先看下面代码:
function main(a) {
if (!a) {
console.log("空");
} else {
console.log("非空");
}
}
main(0);
main(null);
main();
main("")
main(undefined)
main(NaN)
// 以上全是“空”
上面这些好像很好判断,那下面这些呢?
function main(a) {
if (!a) {
console.log("空");
} else {
console.log("非空");
}
}
main(Infinity)
main(-Infinity)
main({})
main([])
main(function(){})
很可惜,以上 5 种情况全为“非空”。所以,如果一股脑认为 if(!a)
就可以判断非空的话,未免有些草率了。。