js权威指南里,两个不同类型值比较,其中一个是数字,另一个是字符串,会先将字符串转换为数字,然后比较数字。

Number('')的值为0,所以0==''值为true。
 

不同类型的值的比较

1、对于string、number等基础类型,不同类型间的比较,==比较的是转化成同一类型后的“值”是否相等,===比较的是类型和值(即:类型&&值)

2、对于Array、Object等引用类型,==和===是没有区别的,都是比较“指针地址”。

3、基础类型与引用类型的比较,对于==,将引用类型转化成基础类型,然后进行值的比较;对于===,因为类型不同,结果为false.

 

常用于比较的

1、0与布尔类型比较时,0相当于false;1相当于true

2、null在if判断里面的值是false

3、undefined在if判断里面的值是false

4、''和"" ,空字符串,也为false

5、NaN在if判断里面的值是false