Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 1.05 KB

if(condition)与if(condition==true).md

File metadata and controls

50 lines (34 loc) · 1.05 KB

问题:

if([0])console.log(1)		// ture

if([0]==true)console.log(1) // false

if("0")console.log(1)		// ture

if("0"==true)console.log(1) // false

解答:

  1. if(condition) javascript在做if(condition)判断的时候会把condition转换成boolean然后做判断,[0]是一个有值的list,所以转成booleantrue

    [0] -> true; 
  2. 比较操作 javascript在做 A == B的比较时,如果ABtype不一样,会先把AB转化成相同的type,通常是number,然后再作比较。

    [0] == true; 
    //会分成以下步骤进行
    
    //把true转化成number,true变成1
    [0]==true -> [0]==1
    
    //list是object
    //先看[0].valueOf(),结果还是[0]
    //再看[0].toString(),结果是“0” type是string
    [0]==1 -> "0" == 1
    
    //把"0"转化成number,"0"变成0,0不等于1
    0 == 1
    
    //结果是false

其它例子

if("0")console.log(1)		// true

if("0"==true)console.log(1) // false

if("1"==true)console.log(1) // true