扒一扒逻辑运算符

第一阶段

刚开始学逻辑运算符的时候

我们知道与或非 => && || !

[scode type=”blue”]复杂点的与非或非以及相互转换这些我们暂时不去讨论[/scode]

第二阶段

熟悉了基础操作之后,我们又知道数据类型是可以相互转换的

数字,字符串,对象,函数,表达式,这些都可以使用使用逻辑运算符

1
2
3
4
let number: Number = 2020;
if ((number > 2019) === true) {
// ...ToDo
}

这样的基础表达式我们已经不屑于用了,会直接演变为

1
2
3
if (number > 2019) {
// ..ToDo
}

第三阶段

用多了之后我们发现逻辑运算符还能进行短路操作,顿时感觉逼格高了,我也要这样玩

expr1 && expr2 如果expr1为false则直接返回false,不进行expr2
expr1 || expr2 如果expr1为true则直接返回true,不进行expr2

第四阶段

1
2
3
4
console.log( null || '123')    // '123'
console.log( null && '123') // null
console.log( undefined || '123') // '123'
console.log( undefined && '123') // undefined

上面的代码如果放在判断条件中,你肯定能一下说出来答案,但是输出呢?

运算符 语法 说明
逻辑与,AND(&& expr1 && expr2 若 expr1 可转换为 true,则返回 expr2;否则,返回 expr1
逻辑或,OR(丨丨 expr1 丨丨 expr2 若 expr1 可转换为 true,则返回 expr1;否则,返回 expr2
逻辑非,NOT(! !expr 若 expr 可转换为 true,则返回 false;否则,返回 true。

逻辑运算符-MDN