这是我参与8月更文挑战的第2天,活动详情查看: 8月更文挑战
这篇文章主要是对 && 和 || 这两个逻辑运算符进行一个深入的理解。
我是在上数据库原理时发现自己对 && 和 || 掌握地不够扎实。
代码都是用javascript书写的。
简单记住:
&&是找错误的表达式,||是找正确的表达式。
下面就解释一下:
&&: 表达式1 && 表达式2 && 表达式n
- 先看表达式1执行运算后转成布尔值地结果,如果是flase就直接返回
表达式1的值;如果表达式1执行运算后转成布尔值地结果是true时,
就看表达式2的结果,然后判断表达式2转换成布尔值是flase还是true;
是false就返回当前表达式2的值;如果是true就继续看后面的表达式,
并判断…………如果到最后一个表达式之前的表达式的值转成布尔类型
都是true的话,就直接返回最后一个表达式的值。
步骤是:
先计算表达式1==》布尔值==》true OR flase 》true,继续判断下个表达式( flase,返回当前表达式的值,结束)》返回最后一个表达式的值;
例子:
console.log(1-1 && 1+1 && ‘love’); //0
console.log(1+1 && 1-1 && ‘love’); //0
console.log(1+1 && ‘love’ && 1-1); //0
var a = 2 && 5 && 4;
var b = 2 && 1 > 2 && 4;
console.log(a);//4
console.log(b);//false
||: 表达式1 || 表达式2 || 表达式n
- 先看表达式1的运行结果转成布尔类型的值,如果布尔值为true就直接返回当前
表达式的结果;如果是false,就继续判断表达式2的运行结果转成布尔类型的值,
如果表达式2的布尔值为true就直接返回当前表达式的结果,如果是false
就判断先一个表达式………如果到最后一个表达式之前的表达式的值转成布尔类型
都是flase的话,就直接返回最后一个表达式的值。
步骤是:
先计算表达式1==》布尔值==》true OR flase==》true:返回当前表达式的值
(flase: 继续判断下一个表达式,结束)==》返回最后一个表达式的值;
例子:
console.log(2 > 1 || ‘love’ || 0); //true
console.log(0 || ‘love’ || 1+1); //love
console.log(0 || 1 < 2 || 1+1); //true
console.log(0 || 2 < 1 || 1+1); //2
var a = 0 || 0 ||false;
var b = false || false || 0;
var c = 0 || 1 || 3;
console.log(a);//false
console.log(b);//0
console.log©;//1
欢迎关注我的公众号:前端学长Joshua