一、if
if语句是编程语言最常用的语句,语法:
if(condition){
//true statement
}else {
//false statement
}
其中condition可以是任意表达式,结果不一定是布尔值,JavaScript解释器会自动调用Boolean()将表达式结果转为布尔值,如果表达式为真执行第一个代码块内语句,如果为假执行第二个代码块内语句。
condition会根据不同的类型作相应的转换:
类型 | 转换后结果 |
---|---|
Undefined | false |
Null | false |
Boolean | 直接判读 |
Number | -0,+0,NaN为false,其他的为true |
String | 空串("")为false,其他的为true,需要注意的是空白字符串(" ")也是为true |
Object | true |
二、a==b
使用==的时候,JavaScript会帮我们做类型转换:
如果两个值类型相同,则执行严格相等的运算
如果两个值的类型不同,那么就好玩了,看下面吧
1、如果一个是null,一个是undefined,那么相等(可以硬背下来)
2、如果一个是数字,一个是字符串,先将字符串转位数字,然后在比较
3、如果一个值是true/false则将其转为1/0比较
4、如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
类型 | 转换后结果 |
---|---|
Undefined | 不转换 |
Null | 不转换 |
Boolean | true为1,false为0 |
Number | 即为数值 |
String | 空串("")为0,空白字符串(" ")也是为0;“123”类型的字符串为里面的数值,“hello”类型的字符串为NaN |
Object | 根据valueOf或toString转换 |
网友评论