关于判断空对象和空数组的一般解决策略
在编程中,常常见到使用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)
空对象的判断方法
与数组一样,考虑先判断是否已经定义: