js如何判断为空

上周我在一个项目中遇到了一个棘手的问题。
我们需要确定变量是否为空。
2 02 3 年,我尝试了各种方法:
1 使用严格相等运算符 (===) 检查变量是否为 null 或未定义。
例如: 如果(变量===空){ // 空变量 } 或 if(变量===未定义){ // 空变量 } 这种方法简单易行,但有时可能不够全面。

2 使用类型运算符检查变量的类型是否为“null”或“undefined”。
例如: if(变量类型 === 'null'){ // 空变量 } 或 if(变量类型 === '未定义'){ // 空变量 } 此方法在检查基本类型时很有用,但对于对象则不太好。

3 对于字符串和数组,检查 .length 属性是否为 0。
例如: if(variable.length === 0){ // 空变量 } 此方法适用于字符串和数组,但无法检查 null、未定义或其他对象。

4 我还写了一个自定义的isEmpty函数来进行综合判断: 函数 isEmpty(变量){ 返回变量 === null ||变量===未定义|| (变量类型 === 'object' && Object.keys(variable).length === 0); } 该函数可以检查 null、未定义和空对象。

由您决定,哪种方法更适合您的需求?

js中如何判断数组为空

说实话,这很有趣。
当我第一次接触 JS 时,我总是被空数组所困扰。
当时还想着很多激动人心的操作,但现在回想起来,真的很好玩。

我们先说比较直接的arr.length === 0。
我以前用过这个技巧,发现它非常方便。
例如,处理API返回的数据时,只需查看res.data.length即可,无需考虑太多。
但后来我发现了一个陷阱——如果从某处传递null或unidentifier,直接使用长度会导致问题。
所以后来我习惯了两步:先Array.isArray(arr),然后arr.length === 0。
这个技巧救了我很多次,比如处理用户输入以避免将空字符串当作空数组。

我们来谈谈all()和some()。
说实话,这两个函数用起来都很有趣,写起来也很优雅。
但是当测试空数组时,它们可能会令人困惑。
我的一位同事踩到了陷阱,用 every(item => item === uncategorized) 来检查空数组,结果发现空数组已经过去了——这是非常不直观的。
后来,我改用了 some(item => item!==unknown)。
即使它可能是空的,但它仍然显得不真实。
现在想想,这两种方法更方便判断数组中元素的状态,比如检查它们是否都是数字或者逻辑值。

至于……,我其实并没有用过这个技巧。
我手痒的时候试过一次,发现完全没必要。
正如我所说,代码冗余,性能不如长度。
除非你想做其他事情,比如并发遍历数组来执行某些操作,只需查看长度就足够了。

我认为最后这些建议特别实用。
直接设置长度=== 0是最简单的,但是在编写辅助函数时添加Array.isArray()更安全。
对于每一个和某些,我建议将它们留给更复杂的场景,而不是将它们用作短期工具。
毕竟,简单和直接往往比花哨的更可靠。