true or false ?

0,undefined,null,NaN,””转成布尔值为false,其他的一律返回true

  1. 初始化后的数组,即使是空数组,也是一个object

    1
    2
    console.log(typeof []) //object
    console.log(typeof(new Array())) //object
  2. 是对象,用于判断条件就会转为true

    1
    if([]) console.log(1)
  3. []与布尔值比较是false,空数组转成Boolean却是true

    1
    2
    3
    4
    5
    6
    []== false   //true
    Boolean([]) //true
    //解释
    Number([]) //0
    0 == false
    //当空数组与布尔值进行比较时,是将==两边先转成Number再进行比较。
  4. 数组是由new Array()出来的,两个数组即使相等,也是两个实例对象,自然不会相等

    1
    2
    [] == []   //false
    [] !== [] //true
  5. 直接拿数值与布尔值进行比较,0是false,1是true,其他数字直接与布尔值比较,全部都是false
    将数值转换成布尔值只有0是false,其他的都是true

    1
    2
    3
    4
    5
    6
    7
    8
    console.log(0 == true)  //false
    console.log(1 == true) //true
    console.log(1 == false) //false
    console.log(2 == true) //false
    console.log(2 == false) //false
    console.log(Boolean(0))//false
    console.log(Boolean(2))//true
    console.log(Boolean(1))//true