关于判断空对象和空数组的一般解决策略
在编程中,常常见到使用if(obj)或者if(arr来判断是否是空数组或者空对象,实际上这是不严谨而且是错误的,因为
if(a)
等价于
if((Boolean)a)
而只有null、undefined、NaN、+0、-0、""这六种转换成布尔类型是false,其余都是true
所以实际上只有空字符串可以这么判断,已经定义了的空数组和空对象不能这么判断。
空数组的判断方法
最常见的考虑使用arr.length===0进行判断,但是值得注意的是,如果这个数组未定义或者为null的时候,是没有length这个属性的,控制台会报错,所以一般需要连用,比如if(arr&&arr.length===0)
空对象的判断方法
与数组一样,考虑先判断是否已经定义:

3万+

被折叠的 条评论
为什么被折叠?



