js中的 || 与 && 运算符详解

文章2019-06-12345 人已阅来源:网络

js中逻辑运算符在开发中可以算是比较常见的运算符了,主要有三种:逻辑与&&、逻辑或||和逻辑非!。

当&&和|| 连接语句时,两边的语句会转化为布尔类型(Boolean),然后再进行运算,具体的运算规则如下:

1、逻辑与&&

  • 两边条件都为true时,结果才为true;
  • 如果有一个为false,结果就为false;
  • 当第一个条件为false时,就不再判断后面的条件

注意:当数值参与逻辑与运算时,结果为true,那么会返回的会是第二个为真的值;如果结果为false,返回的会是第一个为假的值。

2、逻辑或||

  • 只要有一个条件为true时,结果就为true;
  • 当两个条件都为false时,结果才为false;
  • 当一个条件为true时,后面的条件不再判断

注意:当数值参与逻辑或运算时,结果为true,会返回第一个为真的值;如果结果为false,会返回第二个为假的值;

3、逻辑非!

当条件为false时,结果为true;反之亦然。

上代码说明:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <title>demo</title> 
  <script> 
    console.log( 5 && 4 );//当结果为真时,返回第二个为真的值4 
    console.log( 0 && 4 );//当结果为假时,返回第一个为假的值0 
    console.log( 5 || 4 );//当结果为真时,返回第一个为真的值5 
    console.log( 0 || 0 );//当结果为假时,返回第二个为假的值0 
    console.log((3||2)&&(5||0));//5 
    console.log(!5);//false 
  </script> 
</head> 
<body>

</body>
</html>

补充:逻辑与的优先级是高于逻辑或的;

比如

console.log(3||2&&5||0)

会先算2&&5的值为5,然后再3||5----3,最后再3||0----3,所以最终结果为3。

另外:

表达式a && 表达式b :  计算表达式a(也可以是函数)的运算结果,

  • 如果为 True, 执行表达式b(或函数),并返回b的结果;
  • 如果为 False,返回a的结果;

表达式a || 表达式b :   计算表达式a(也可以是函数)的运算结果,

  • 如果为 Fasle, 执行表达式b(或函数),并返回b的结果;
  • 如果为 True,返回a的结果;

例如:

var  a =  obj || " "  ;     //如果 obj 为空,a就赋值为 " " ;
var  a = check() &&  do();    //如果check()返回为真,就执行do(),并将结果赋值给 a;