# 什么是if语句
if结构语句是判断一个表达式的布尔值(boolean)然后根据判断的真伪执行不同语句,true是真,false是伪。
## 基本语法结构:
```javascript
if(boolean){
语句 //true
}else{
语句 //false
}
```
## 举个栗子:
```javascript
var a = 3
if(a > 5){
alert("true")
}else{
alert("false")
}
```
## 判断流程:
1. 首先变量声明了a,它的值是3。
2. 接着判断布尔值a > 5 是否为真。
3. 3 > 5那么执行alert("true")。
4. 如果如果改变a的值大于5那么会执行alert("false")
## boolean判断结果
| 类型 | 结果 |
| --------- | ------------------------------- |
| undefined | false |
| null | false |
| Boolean | 直接判断 |
| string | ""(空字符串)为false,其他为true |
| Object | true |
| Number | +0,-0,Nan为false,其他为true |
# 相等运算符
在编写代码过程中为什么不用`==`运算符的呢,下面简单了解一下`==`运算符。
相等运算符`x==y` 对比值时会先将x与y进行类型转换在用`===`比较。
下面让我们看看`==`运算符的判断图:
![相等运算符](https://pic4.zhimg.com/v2-56b0622eedf178434c31fafa34f7071b_b.png)
如图`[]==0 //true`很难让人理解。而且目前我也不知道在什么情况下必须使用`==`时不能用`===`来代替的。
## 严格相等运算符
下面让我们看看`===`运算符的判断图:
![严格相等运算符](https://pic1.zhimg.com/v2-a7d5eee8b2d41109a012647e8fec2d84_b.png)
严格相等运算符比较类型是否相同而不会做奇怪的类型转换在比较。
# 严格不相等运算符
如字面意思严格相等运算符`===`的另一面是严格不相等运算符`!==`,两者判断逻辑正好相反。
例如:`[] === 0 //false` `[] !== 0 //true`
网友评论