JS 非空判断

JS 非空判断

Sep 11, 2021
前端, JavaScript

在 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) 就可以判断非空的话,未免有些草率了。。

本文共 239 字,上次修改于 Mar 10, 2023,以 CC 署名-非商业性使用-禁止演绎 4.0 国际 协议进行许可。

相关文章

» 跨域相关问题

» 了解下 MobX 概念

» 了解下 Redux 概念

» 浏览器中的 HTTP 缓存使用策略

» 前端的节流和防抖