关于if(xx)和 a==b的判断问题
2018-03-15 本文已影响0人
Shinooo
if语句
javascript的if语句写法为
if(condition){
}
编写代码时应该将condition写为""===""形式,避免在阅读代码时引起麻烦。
当condition不标准时我们也应该学会去判断。
if语句会使用ToBoolean的强制方法将conditoion转换成布尔值,转换方法如下:
- 参数类型为undefined时转换为false
- 参数类型为null时转换为false
- 参数类型为number时,如果值为+0,-0,NaN时为false,其它为true
- 参数类型为string时,空字符串为false,其余为true
- 参数类型为object时,为true。
== 运算符
一般不建议用==,而是用===
== 运算符通常在比较之前会将两边的值转换成相同数据类型(通常是number)。
x == y的比较标准为:
- undefined == null为true
- xy同类型时与===一样
- string与数字比较时,转换为数字,如果string不能转为数字则为NaN
- bool类型true为1,false为0
- 当object与string或数字比较时,先考虑valueOf,再考虑toString.