javascript基础 之 && 和 ||

287 阅读2分钟

这是我参与8月更文挑战的第2天,活动详情查看: 8月更文挑战

这篇文章主要是对 && 和 || 这两个逻辑运算符进行一个深入的理解。
我是在上数据库原理时发现自己对 && 和 || 掌握地不够扎实。

代码都是用javascript书写的。

简单记住:
&&是找错误的表达式,||是找正确的表达式。

下面就解释一下:
&&: 表达式1 && 表达式2 && 表达式n

  1. 先看表达式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. 先看表达式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