1.
==会把比较的二者进行类型转换:
如:0
==
false
//
true,
会把0转成bool值进行比较
1
==
true
//
true,
同样把1转成bool值再和true进行比较
2.
===是不会把比较的二者进行类型转换,是string就是string,是number就是number
如:
0
===
false
//
false,
因为0是number,false是boolean,两者就肯定不相等
1
===
true
//
false
当把"1"直接参加到除加法之外的其他数学运算(如减、乘、除、乘方、开方等)时,javascript会自动把"1"转换为1再进行计算,因此在这种情况下"1"是等于1的。比如:alert(2-"1") //结果为1;
alert(2*"1") //结果为2;
alert("1"/2) //结果为0.5
但如果把"1"参加到加法运算中,则一律按字符串连接处理,也就是说这个时候"1"是不等于1的。比如:
alert(2+"1") //结果为"21"
alert("1"+2) //结果为"12"
alert("1"+"2") //结果为"12"