对于使用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