Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der JavaScript-Logik und der Operator_Javascript-Fähigkeiten

Detaillierte Erläuterung der JavaScript-Logik und der Operator_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:27:241198Durchsuche

In JavaScript wird der logische UND-Operator durch ein doppeltes kaufmännisches Und (&&) dargestellt

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

Die folgende Wahrheitstabelle beschreibt das Verhalten des logischen UND-Operators:

Es ist zu beachten, dass der Operand der logischen UND-Operation einen beliebigen Typ haben kann, nicht nur boolesche Werte. Wenn ein Operand kein ursprünglicher boolescher Wert ist, gibt die logische UND-Operation nicht unbedingt einen booleschen Wert zurück

Der logische UND-Operator verhält sich wie folgt:

  • Wenn ein Operand ein Objekt und der andere ein boolescher Wert ist, geben Sie dieses Objekt zurück.
  • Wenn beide Operanden Objekte sind, geben Sie das zweite Objekt zurück.
  • Wenn ein Operand null ist, wird null zurückgegeben.
  • Wenn ein Operand NaN ist, geben Sie NaN zurück.
  • Wenn ein Operand undefiniert ist, tritt ein Fehler auf.
  • Wenn beide Operanden vom Typ boolean sind, wird ein boolescher Wert zurückgegeben

Ähnlich wie die logische UND-Operation in Java ist auch die logische UND-Operation in JavaScript eine einfache Operation, dh wenn der erste Operand das Ergebnis bestimmt, wird der zweite Operand nicht berechnet. Wenn bei logischen UND-Operationen der erste Operand falsch ist, kann das Ergebnis unabhängig vom Wert des zweiten Operanden nicht gleich wahr sein.
Betrachten Sie das folgende Beispiel:

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

Ergebnis der Codeausführung:

Dieser Code löst einen Fehler aus, wenn eine logische UND-Operation ausgeführt wird, da die Variable bUnknown undefiniert ist. Die Variable bTrue hat den Wert true, da die logische UND-Verknüpfung weiterhin die Variable bUnknown auswertet. Andernfalls wird ein Fehler ausgelöst, da der Wert von bUnknown nicht definiert ist und nicht in einer logischen UND-Operation verwendet werden kann.
Wenn Sie dieses Beispiel ändern und die erste Zahl auf „false“ setzen, tritt der Fehler nicht auf:

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

In diesem Code gibt das Skript den von der logischen UND-Operation zurückgegebenen Wert aus, nämlich die Zeichenfolge „false“. Auch wenn die Variable bUnknown den Wert undefiniert hat, wird sie nicht ausgewertet, da der erste Operand den Wert false hat.

Laufergebnis:

Überprüfen Sie das Betriebsverhalten des logischen JavaScript-And-Operators

Testcode:

<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>

Das Obige ist die vollständige Einführung in den logischen And-Operator von JavaScript. Ich hoffe, es kann jedem helfen, die logischen Operatoren von js besser zu lernen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn