对于使用JS,经常会遇到使用if或者==等判断语句,来了解一下对于两种条件的基本转换
if(xx)
括号里的表达式会被强制转换成布尔类型进行判断
其余转换规则如下:
-
Undefined转换为false -
Null转换为false -
Boolean直接判断 -
Number:+0,-0,NaN会被转换为false,其他会被转换为true -
String:空字符串为false,其他为true -
Object:转换为true
在进行
&&``||判断的时候,同样null、NaN、undefined、“”、0、-0、false;这七个是flase
a==b
== 不是严格相等,所以在使用 == 的时候会在一定程度上改变原值的类型:
-
Undefined=Null - a和b中有数字类型或者布尔类型,都转换为数字进行判断比较
- 如果一个为对象,一个为字符串或者数字,把对象转换为数字进行比较判断
-
Undefined转换为NaN -
Null转换为0 - 布尔类型:
true转换为1,false转换为0 - 字符串:非数字字符串转为
NaN,数字字符串转为数字值 - 对于
object对象,先调用.valueof,没有再调用.tostring





网友评论