先看一段代码:
let arr = new Array();
//或let arr = [];
Boolean(arr); //true
typeof(arr); //object
Number(arr); //0
-
条件判断时,空数组会转化为True
即使是空数组,也是一个object,所有object在条件判断时均为true;
-
在'=='比较时,根据规则转化后再进行比较
arr == true; //false arr == false; //true arr == 0; //true arr == 1; //false当进行Object == Boolean比较时,转化为ToPrimitive() == ToNumber()。(JavaScript 中的相等性判断)
[] == ![] //true左侧为空数组,右侧为布尔值false。
new Array() == []; //false两个对象的比较,结果必然为false。