JavaScript教程:逻辑运算符(&&、||、!)

介绍

逻辑运算符:是用来连接 两个 布尔类型 的运算符,运算结果是 布尔值,即 true 或者 false

操作符 描述
&& (shift+7) 逻辑与,两侧都为true时,结果才为true;有一个为false,结果就为false
2个竖线 (shift+回车键上面的按键) 逻辑或,两侧有一个为true,结果就为true;两个都为false时,结果就为false
! (shift+1) 逻辑非,取反,原本是true,取反就是false

逻辑非 !

逻辑非,就是取反,颠倒是非

console.log( ! true ) # false
console.log( ! false) # true
console.log( ! (3 > 2)  )  # false

逻辑与 &&

逻辑与,两侧都为true时,结果才为true;有一个为false,结果就为false

应用场景

女性结婚条件:有房、彩礼,即:2个条件必须 同时满足,才结婚

代码

  1. 当 a and b ,a和b都为 true时,结果就是 true

    console.log( true  and  true )
    

    返回结果如下:

    true
    
  2. 当 a and b ,有一个是 false,结果就是 false
    看下面代码

    var a = true
    var b = false
    c = a and b
    console.log(c)
    

    返回结果如下:

    false
    

例子:

数学成绩是90分,语文成绩85分,进行下面编程:

  1. 每科成绩大于等于85分,可以得二等奖学金
  2. 每科成绩大于等于90分,可以得一等奖学金
  3. 每科成绩大于等于98分,可以得特等奖学金
var shu = 90
var yu = 85
# 比较运算的优先级,比逻辑运算符 高
console.log( "是否能得二等奖学金:",   shu >= 85 and yu >= 85  ) # true
console.log( "是否能得一等奖学金:",   shu >= 90 and yu >= 90  ) # false
console.log( "是否能得特等奖学金:",   shu >= 98 and yu >= 98  ) # false

逻辑或 ||

逻辑或 两侧都是 false ,结果才是 false,有一个是true,结果就是 true

应用场景

好老师的标准:要么让我玩游戏,要么让我刷抖音,满足一个就是好老师

代码

  1. 当 a or b ,a和b都为 false,结果就是 false
    看下面的代码:

    var youxi = false // 不让玩游戏
    var douyin = false // 不让刷抖音
    var c = youxi or douyin
    console.log(c)
    

    返回结果如下:

    false
    
  2. 当 a or b ,a或b有一个为 true,结果就是 true
    看下面代码

    var youxi = true // 让玩游戏
    var douyin = false // 不让刷抖音
    var c = youxi or douyin
    console.log(c)
    

    返回结果如下:

    true
    

例子

数学成绩是90分,语文成绩85分,进行下面编程:

  1. 有一科成绩大于等于90分,可以得优秀单科奖学金
  2. 有一科成绩大于等于95分,可以得特等单科奖学金
var shu = 90
var yu = 85
# 比较运算的优先级,比逻辑运算符 高
console.log( "是否能得优秀单科奖学金:",   shu >= 90 or yu >= 90  ) # true
console.log( "是否能得特等单科奖学金:",   shu >= 95 or yu >= 95  ) # false

例子

练习1

var a = true;
var b = true;
console.log("a && b = " + (a&&b));
console.log("a || b = " + (a||b) );
console.log("!a = " + !a);
var a = false;
var b = true;
console.log(a&&b);//结果:false。     两侧都为true时,结果才为true;有一个为false,结果就为false
console.log(a||b);//结果:true。     两侧有一个为true,结果就为true;两个都为false时,结果就为false
console.log( !a);//结果:true
var a = false;
var b = false;
console.log(a&&b);//结果:false。     两侧都为true时,结果才为true;有一个为false,结果就为false
console.log(a||b);//结果:false。     两侧有一个为true,结果就为true;两个都为false时,结果就为false
console.log( !a);//结果:true

练习2

var a = 5 > 3; //true
var b = 4 < 2; //false
console.log( a&&b );//结果:false
console.log( a||b  );//结果:true
console.log(  !a);//结果:false

原文出处:/show_1IX1HhCYbY6C.html