当前位置:小鱼儿玄机二站 > 操作系统 > 逻辑And运算符详解

逻辑And运算符详解

文章作者:操作系统 上传时间:2019-09-03

在JavaScript中,逻辑 AND 运算符用双和号(&&)表示

 在JavaScript中,逻辑 AND 运算符用双和号(&&)表示

var bTrue = true;
var bFalse = false;
var bResult = bTrue && bFalse;

 

  下边包车型地铁真值表描述了逻辑AND运算符的一颦一笑:

1 var bTrue = true;

图片 1

2 var bFalse = false;

内需验证的是:逻辑AND运算的运算数能够是其余项指标,不仅仅是Boolean值,假诺有些运算数不是本来的Boolean型值,逻辑AND运算并不一定再次来到Boolean值

3 var bResult = bTrue && bFalse;

逻辑AND运算符的运算行为如下:

  上面包车型地铁真值表描述了逻辑AND运算符的一颦一笑:

  • 借使贰个运算数是目的,另贰个是 Boolean 值,重回该对象。
  • 假定四个运算数都以指标,重回第贰个指标。
  • 借使有些运算数是 null,重回 null。
  • 一旦某些运算数是 NaN,重回 NaN。
  • 若果有个别运算数是 undefined,产生错误。
  • 固然七个运算数都是boolean类型,则赶回boolean值

 

  与Java中的逻辑AND运算相似,JavaScript 中的逻辑AND运算也是便利运算,即只要首个运算数决定了结果,就不再总计第二个运算数。对于逻辑AND运算来讲,假设第一个运算数是false,那么不论第四个运算数的值是何等,结果都不恐怕相当于true。
  思考上边包车型地铁例子:

运算数 1 运算数 2 结果

var bTrue = true;
var bResult = (bTrue && bUnknown); //发生错误
alert(bResult); //这一行不会执行

true true true

代码运转结果:

true false false

图片 2

false true false

  这段代码在展开逻辑 AND 运算时将引发错误,因为变量 bUnknown 是未定义的。变量 bTrue 的值为 true,因为逻辑 AND 运算将延续总括变量 bUnknown。那样做就能够抓住错误,因为 bUnknown 的值是 undefined,不可能用于逻辑 AND 运算。
    假使改造这几个事例,把第一个数设为 false,那么就不会发出错误:

false false false

var bTrue = false;
var bResult = (bTrue && bUnknown); //不会发生错误
alert("bTrue && bUnknown的结果是:"+(bResult));//输出 "false"

 

  在这段代码中,脚本将出口逻辑AND运算重返的值,即字符串"false"。就算变量 bUnknown 的值为 undefined,它也不会被总括,因为第三个运算数的值是 false。

 

运作结果:

  

图片 3

 

验证JavaScript逻辑And运算符的演算行为

 

测量试验代码:

 

<script type="text/javascript">
  document.write("验证JavaScript逻辑And运算符的运算行为:");
  document.write("<br/>");
  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");

  var bTrue = true;
  var bFalse = false;
  var bResult = bTrue && bFalse;
  /*1.如果两个运算数都是boolean类型,则返回boolean值*/
  document.write("1.如果两个运算数都是boolean类型,则返回boolean值");
  document.write("<br/>");
  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");
  document.write("bTrue = true,bFalse = false,bTrue && bFalse的结果是:"+(bResult));//结果为false
  document.write("<br/>");

  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");

  var obj = new Object();
  /*2.如果一个运算数是对象,另一个是 Boolean 值,返回该对象*/
  document.write("2.如果一个运算数是对象,另一个是 Boolean 值,返回该对象");
  document.write("<br/>");
  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");
  document.write("obj是一个对象,true&&obj的结果是:"+(true&&obj));
  document.write("<br/>");
  document.write("obj==true&&obj的结果是:"+(obj==(true&&obj)));
  document.write("<br/>");
  document.write("false&&obj的结果是:"+(false&&obj));
  document.write("<br/>");

  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");
  /*3.如果两个运算数都是对象,返回第二个对象。*/
  var obj1 = new Object();
  var obj2 = new Object();
  document.write("3.如果两个运算数都是对象,返回第二个对象。");
  document.write("<br/>");
  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");
  document.write("obj1是一个对象,obj2是一个对象,obj1==(obj1&&obj2)的结果是:"+(obj1==(obj1&&obj2)));//结果为false
  document.write("<br/>");
  document.write("obj1是一个对象,obj2是一个对象,obj2==(obj1&&obj2)的结果是:"+(obj2==(obj1&&obj2)));//结果为true
  document.write("<br/>");

  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");
  /*4.如果某个运算数是 null,返回null。*/
  var a=null;
  var b=true;
  document.write("4.如果某个运算数是 null,返回null。");
  document.write("<br/>");
  document.write("a=null,b=true,a&&b的结果是:"+(a&&b));
  document.write("<br/>");
  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");
  /*5.如果某个运算数是NaN,返回NaN*/
   var c = NaN;
   var d = "str";
  document.write("5.如果某个运算数是NaN,返回NaN");
  document.write("<br/>");
  document.write("c=NaN,d=str,c&&d的结果是:"+(c&&d));
  document.write("<br/>");
  document.write("-----------------------------------------------------------------------------");
  document.write("<br/>");
  /*
  6.JavaScript中的逻辑 AND 运算是简便运算,即如果第一个运算数决定了结果,就不再计算第二个运算数。
  对于逻辑 AND 运算来说,如果第一个运算数是 false,那么无论第二个运算数的值是什么,结果都不可能等于 true。
  */
  var bFalse = false;
  var bResult = (bFalse && bUnknown);
  document.write("6.JavaScript中的逻辑 AND 运算是简便运算,即如果第一个运算数决定了结果,就不再计算第二个运算数");
  document.write("<br/>");
  document.write("对于逻辑 AND 运算来说,如果第一个运算数是 false,那么无论第二个运算数的值是什么,结果都不可能等于 true。");
  document.write("<br/>");
  document.write("bFalse=false,bUnknown是一个未定义的变量,bFalse && bUnknown的结果是:"+(bResult)); //输出 "false"

  var bTrue = true;
  var bResult = (bTrue && bUnknown);  //发生错误
  alert(bResult);      //这一行不会执行
 </script>

 

图片 4

 

上述正是有关JavaScript逻辑And运算符的整个介绍,希望能够帮助到我们更加好的学习js的逻辑运算符。

 

你或者感兴趣的篇章:

  • js的逻辑运算符 ||
  • js比较和逻辑运算符的介绍
  • 浓密驾驭JavaScript的逻辑运算符(与、或)
  • javascript运算符——逻辑运算符周详深入分析
  • 巧用Javascript的逻辑运算符
  • 老调重弹javascript中逻辑运算符&&和||的再次来到值难点
  • javaScript 逻辑运算符使用手艺整理
  • JavaScript知识点总计(四)之逻辑OPRADO运算符详解
  • 详解JavaScript逻辑Not运算符
  • JS逻辑运算符短路操作实例深入分析

 

  须求评释的是:逻辑AND运算的运算数能够是其余项指标,不仅仅是Boolean值,假使有些运算数不是本来的Boolean型值,逻辑AND运算并不一定再次回到Boolean值

 

逻辑AND运算符的演算行为如下:

 

一经贰个运算数是目的,另三个是 Boolean 值,重返该目的。

假若多个运算数都是目的,再次回到第贰个目的。

假使有些运算数是 null,再次回到 null。

假使有些运算数是 NaN,重返 NaN。

要是某些运算数是 undefined,暴发错误。

比如三个运算数都以boolean类型,则赶回boolean值

  与Java中的逻辑AND运算相似,JavaScript 中的逻辑AND运算也是便利运算,即只要第三个运算数决定了结果,就不再总结第三个运算数。对于逻辑AND运算来讲,假诺第三个运算数是false,那么不论是第4个运算数的值是怎么样,结果都不容许至极true。

  惦记上面包车型地铁例子:

 

1 var bTrue = true;

2 var bResult = (bTrue && bUnknown); //发生错误

3 alert(bResult); //这一行不会奉行

代码运转结果:

 

 

 

  这段代码在扩充逻辑 AND 运算时将吸引错误,因为变量 bUnknown 是未定义的。变量 bTrue 的值为 true,因为逻辑 AND 运算将接二连三总计变量 bUnknown。这样做就能够掀起错误,因为 bUnknown 的值是 undefined,无法用来逻辑 AND 运算。

    假使改换这一个例子,把第多个数设为 false,那么就不会生出错误:

 

1 var bTrue = false;

2 var bResult = (bTrue && bUnknown); //不会爆发错误

3 alert("bTrue && bUnknown的结果是:"+(bResult));//输出 "false"

  在这段代码中,脚本将出口逻辑AND运算再次回到的值,即字符串"false"。纵然变量 bUnknown 的值为 undefined,它也不会被计算,因为第三个运算数的值是 false。

 

运作结果:

 

 

 

验证JavaScript逻辑And运算符的演算行为

 

测验代码:

 

复制代码

 1  <script type="text/javascript">

 2     document.write("验证JavaScript逻辑And运算符的运算行为:");

 3     document.write("<br/>");

 4     document.write("-----------------------------------------------------------------------------");

 5     document.write("<br/>");

 6 

 7     var bTrue = true;

 8     var bFalse = false;

 9     var bResult = bTrue && bFalse;

10     /*1.只要多少个运算数都以boolean类型,则赶回boolean值*/

11     document.write("1.倘诺多少个运算数都以boolean类型,则赶回boolean值");

12     document.write("<br/>");

13     document.write("-----------------------------------------------------------------------------");

14     document.write("<br/>");

15     document.write("bTrue = true,bFalse = false,bTrue && bFalse的结果是:"+(bResult));//结果为false

16     document.write("<br/>");

17 

18     document.write("-----------------------------------------------------------------------------");

19     document.write("<br/>");

20 

21     var obj = new Object();

22     /*2.假诺一个运算数是目的,另四个是 Boolean 值,重返该指标*/

23     document.write("2.一旦贰个运算数是目的,另二个是 Boolean 值,重返该指标");

24     document.write("<br/>");

25     document.write("-----------------------------------------------------------------------------");

26     document.write("<br/>");

27     document.write("obj是叁个目标,true&&obj的结果是:"+(true&&obj));

28     document.write("<br/>");

29     document.write("obj==true&&obj的结果是:"+(obj==(true&&obj)));

30     document.write("<br/>");

31     document.write("false&&obj的结果是:"+(false&&obj));

32     document.write("<br/>");

33 

34     document.write("-----------------------------------------------------------------------------");

35     document.write("<br/>");

36     /*3.只要多个运算数都是目的,再次来到第一个目的。*/

37     var obj1 = new Object();

38     var obj2 = new Object();

39     document.write("3.假诺五个运算数都是目的,重临第一个对象。");

40     document.write("<br/>");

41     document.write("-----------------------------------------------------------------------------");

42     document.write("<br/>");

43     document.write("obj1是贰个指标,obj2是一个指标,obj1==(obj1&&obj2)的结果是:"+(obj1==(obj1&&obj2)));//结果为false

44     document.write("<br/>");

45     document.write("obj1是三个目的,obj2是一个目的,obj2==(obj1&&obj2)的结果是:"+(obj2==(obj1&&obj2)));//结果为true

46     document.write("<br/>");

47 

48     document.write("-----------------------------------------------------------------------------");

49     document.write("<br/>");

50     /*4.只要有些运算数是 null,重回null。*/

51     var a=null;

52     var b=true;

53     document.write("4.尽管某些运算数是 null,重返null。");

54     document.write("<br/>");

55     document.write("a=null,b=true,a&&b的结果是:"+(a&&b));

56     document.write("<br/>");

57     document.write("-----------------------------------------------------------------------------");

58     document.write("<br/>");

59     /*5.若是某部运算数是NaN,再次来到NaN*/

60      var c = NaN;

61      var d = "str";

62     document.write("5.倘若某部运算数是NaN,重回NaN");

63     document.write("<br/>");

64     document.write("c=NaN,d=str,c&&d的结果是:"+(c&&d));

65     document.write("<br/>");

66     document.write("-----------------------------------------------------------------------------");

67     document.write("<br/>");

68     /*

69     6.JavaScript中的逻辑 AND 运算是简便运算,即尽管第二个运算数决定了结果,就不再计算第四个运算数。

70     对于逻辑 AND 运算来说,倘诺第多少个运算数是 false,那么不论是第贰个运算数的值是怎么样,结果都不容许格外 true。

71     */

72     var bFalse = false;

73     var bResult = (bFalse && bUnknown);

74     document.write("6.JavaScript中的逻辑 AND 运算是简便运算,即只要第贰个运算数决定了结果,就不再总结第一个运算数");

75     document.write("<br/>");

76     document.write("对于逻辑 AND 运算来讲,借使第四个运算数是 false,那么不论是第二个运算数的值是何许,结果都不容许分外 true。");

77     document.write("<br/>");

78     document.write("bFalse=false,bUnknown是三个未定义的变量,bFalse && bUnknown的结果是:"+(bResult)); //输出 "false"

79 

80     var bTrue = true;

81     var bResult = (bTrue && bUnknown);    //发生错误

82     alert(bResult);            //这一行不会实践

83   </script>

AND 运算符用双和号()表示 1 var bTrue = true; 2 var bFalse = false; 3 var bResult = bTrue bFalse; 下边包车型客车真值表描述了逻辑AND运算符的...

本文由小鱼儿玄机二站发布于操作系统,转载请注明出处:逻辑And运算符详解

关键词: