空数组是true还是false

1,452 阅读1分钟

先看一段代码:

let arr = new Array();
//或let arr = [];
Boolean(arr);	//true
typeof(arr);	//object
Number(arr);	//0
  1. 条件判断时,空数组会转化为True

    即使是空数组,也是一个object,所有object在条件判断时均为true;

  2. 在'=='比较时,根据规则转化后再进行比较

    arr == true;	//false
    arr == false;	//true
    arr == 0;		//true
    arr == 1;		//false
    

    当进行Object == Boolean比较时,转化为ToPrimitive() == ToNumber()。(JavaScript 中的相等性判断)

    [] == ![]		//true
    

    左侧为空数组,右侧为布尔值false。

    new Array() == [];		//false
    

    两个对象的比较,结果必然为false。