扒一扒逻辑运算符
第一阶段
刚开始学逻辑运算符的时候
我们知道与或非 => && || !
[scode type=”blue”]复杂点的与非或非以及相互转换这些我们暂时不去讨论[/scode]
第二阶段
熟悉了基础操作之后,我们又知道数据类型是可以相互转换的
数字,字符串,对象,函数,表达式,这些都可以使用使用逻辑运算符
1 | let number: Number = 2020; |
这样的基础表达式我们已经不屑于用了,会直接演变为
1 | if (number > 2019) { |
第三阶段
用多了之后我们发现逻辑运算符还能进行短路操作,顿时感觉逼格高了,我也要这样玩
expr1 && expr2 如果expr1为false则直接返回false,不进行expr2
expr1 || expr2 如果expr1为true则直接返回true,不进行expr2
第四阶段
1 | console.log( null || '123') // '123' |
上面的代码如果放在判断条件中,你肯定能一下说出来答案,但是输出呢?
| 运算符 | 语法 | 说明 |
|---|---|---|
逻辑与,AND(&&) |
expr1 && expr2 |
若 expr1 可转换为 true,则返回 expr2;否则,返回 expr1。 |
逻辑或,OR(丨丨) |
expr1 丨丨 expr2 |
若 expr1 可转换为 true,则返回 expr1;否则,返回 expr2。 |
逻辑非,NOT(!) |
!expr |
若 expr 可转换为 true,则返回 false;否则,返回 true。 |