运算符
# 比较运算符(返回**布尔值**)
|运算符| 描述|
|-|-|
|==| 等于|
|===| 值相等并且类型相等*|
|!=| 不相等|
|!==| 值不相等或类型不相等*|
|>| 大于|
|<| 小于|
|>=| 大于或等于|
|<=| 小于或等于|
# 逻辑运算符
|运算符| 描述|
|-|-|
|&&| 与|
|`||`| 或|
|!| 非|
## &&(与运算)节选
- 逻辑与 运算
|第一个操作数| 第二个操作数| 运算结果|
|-|-|-|
|true| true| true|
|true| false| false|
|false| true| false|
|false| false| false|
>   逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。
运算逻辑如下:
- 第 1 步:计算第一个操作数(左侧表达式)的值。
- 第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 false(如 **null**、**undefined**、**NaN**、**0**、""、**false**),那么就会结束运算,直接返回第一个操作数的值。
- 第 3 步:如果第一个操作数可以转换为 true,则计算第二个操作数(右侧表达式)的值。
- 第 4 步:返回第二个操作数的值。
## && 与 if语句
```
var n = 1;
(n == 1) && console.log(" n 的值为 1");
```
等价于⬇
```
if(n == 1) {
console.log(" n 的值为 1");
}
```
### && 与 swith语句
```
var n = 1;
(n == 1) && console.log(" n 的值为 1");
(n == 2) && console.log(" n 的值为 2");
(n == 3) && console.log(" n 的值为 3");
( ! n ) && console.log("null");
```
等价于⬇
```
var n = 1;
switch(n){
case1:
console.log(" n 的值为 1");
break;
case2:
console.log(" n 的值为 2");
break;
case3:
console.log(" n 的值为 3");
break;
default:
console.log("null");
```
.
### ||(或运算)节选
- 逻辑或 运算
|第一个操作数| 第二个操作数| 运算结果|
|-|-|-|
|true |true| true|
|true |false| true|
|false |true| true|
|false| false| false|
>   逻辑或也是一种短路逻辑,如果左侧表达式为 true,则直接短路返回结果,不再运算右侧表达式。
运算逻辑如下:
- 第 1 步:计算第一个操作数(左侧表达式)的值。
- 第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 true,那么就会结束运算,直接返回第一个操作数的值。
- 第 3 步:如果第一个操作数可以转换为 false,则计算第二个操作数(右侧表达式)的值。
- 第 4 步:返回第二个操作数的值。
### &&、|| 与 swith语句
```
var n = 2;
(n == 1) && console.log(" n 的值为 1") ||
(n == 2) && console.log(" n 的值为 2") ||
(n == 3) && console.log(" n 的值为 3") ||
( ! n ) && console.log("null");
```
等价于⬇
```
var n = 2;
switch(n){
case1:
console.log(" n 的值为 1");
break;
case2:
console.log(" n 的值为 2");
break;
case3:
console.log(" n 的值为 3");
break;
default:
console.log("null");
```
.
## !(非运算)节选
>   逻辑非运算!是布尔取反操作(NOT)。作为一元运算符,直接放在操作数之前,把操作数的值转换为布尔值,然后取反并返回。
# 条件(三元)运算符
JavaScript 也包含了可基于某些条件向变量赋值的条件运算符。
> 语法
variablename = (condition) ? value1:value2
## 三元运算符 与 if...else 及 if语句
### 三元运算符 与 if...else语句
```
var n = 1;
(n == 1) ? console.log(" n 的值为 1"):console.log(" n 的值不为 1")
```
等价于⬇
```
var n = 1;
if(n == 1) {
console.log(" n 的值为 1");
} else {
console.log(" n 的值不为 1");
}
```
### 三元运算符 与 if语句
```
var n = 1;
(n == 1) ? console.log(" n 的值为 1"):null;
```
等价于⬇
```
var n = 1;
if(n == 1) {
console.log(" n 的值为 1");
}
```
# 关于if条件语句 与 Switch 语句
[if条件语句](https://easydoc.xyz/#/doc/19870845/TDl1WX7K/bZwWEXxz) . . . [Switch 语句](https://easydoc.xyz/#/doc/19870845/TDl1WX7K/6fb2a3wM)