跳至正文
JS 非空判断

JS 非空判断

在 js 中,有一个富有哲学意味的问题:「什么是空」?先看下面代码:

js
function main(a) {
  if (!a) {
    console.log("空");
  } else {
    console.log("非空");
  }
}
main(0);
main(null);
main();
main("")
main(undefined)
main(NaN)
// 以上全是“空”

上面这些好像很好判断,那下面这些呢?

js
function main(a) {
  if (!a) {
    console.log("空");
  } else {
    console.log("非空");
  }
}
main(Infinity)
main(-Infinity)
main({})
main([])
main(function(){})

很可惜,以上 5 种情况全为“非空”。所以,如果一股脑认为 if(!a) 就可以判断非空的话,未免有些草率了。

本文共 132 字,以 CC 署名-非商业性使用-禁止演绎 4.0 国际 协议进行许可。

评论

博客助手

正在打开博客助手…