if(xx)
### if语法:
```
if(condition){
//true statement
}else {
//false statement
}
```
其中condition可以是任意表达式,结果不一定是布尔值,JavaScript解释器会自动调用Boolean()将表达式结果转为布尔值,如果表达式为真执行第一个代码块内语句,如果为假执行第二个代码块内语句。
只有一条语句的时候代码块不是必需的,出于维护性考虑我们建议添加。
对于括号里的表达式,转化为布尔类型的原理如下表:
|类型|结果|
|undefined|false|
|null|false|
|boolean|直接判断|
|number|+0,-0或NaN为false,其余为true|
|string|空字符串为false,其余为false|
|object|true|
if语句可以单独使用,也可以和多个else连续使用:
```
if(a > 2){
// statement
}
if( a == 1){
}else if(a == 2){
}else if(a == 3 ){
}else{
}
```
a==b的判断
使用==的时候,javascript会帮我们做类型转换,原理如下:
如果两个值类型相同,则执行严格相等的运算;
如果两个值的类型不同:
如果一个是null,一个是undefined,那么相等;
如果一个是数字,一个是字符串,先将字符串转为数字,然后比较;
如果一个值是true/false则将其转为1/0比较;
如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较;
其它就不相等了。