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