返回博客

JavaScript 空对象判断及条件判断陷阱

本文探讨了 JavaScript 中判断空对象和条件判断的陷阱,例如 `if({})` 的逻辑判断以及后端返回 '0' 字符串的情况,并提供了相应的解决方案。

Mt.r
|

有一次后端返回了空对象给我,我的代码如下,然后导致逻辑通过。

if ({}) {
  console.log(true);
}

判断是否空对象

后来我就加上了这个方法用于判断传进来的参数是不是空对象

function isEmptyObject(obj) {
  if (!obj) {
    return true;
  }
  return Object.keys(obj).length == 0;
}
if (!isEmptyObject({})) {
  console.log(true);
}

后记

有时候还会有很多你意想不到的 bug,比如 if("0")

后端可能给你传过来一个字符串的 0,你会怎么做防范呢?

if ('0') {
  console.log('后端想通过传 0 表示无数据');
}