Rumah  >  Artikel  >  hujung hadapan web  >  Penjelasan terperinci tentang logik JavaScript Dan kemahiran operator_javascript

Penjelasan terperinci tentang logik JavaScript Dan kemahiran operator_javascript

WBOY
WBOYasal
2016-05-16 15:27:241197semak imbas

Dalam JavaScript, operator logik DAN diwakili oleh ampersand berganda (&&)

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

Jadual kebenaran berikut menerangkan kelakuan operator logik DAN:

Perlu diambil perhatian bahawa operan bagi operasi logik AND boleh daripada sebarang jenis, bukan hanya nilai Boolean Jika operan bukan nilai Boolean asal, operasi logik AND tidak semestinya mengembalikan nilai Boolean

.

Operator logik DAN berkelakuan seperti berikut:

  • Jika satu operan ialah objek dan satu lagi ialah nilai Boolean, kembalikan objek itu.
  • Jika kedua-dua operan ialah objek, kembalikan objek kedua.
  • Jika operan adalah nol, kembalikan null.
  • Jika operan ialah NaN, kembalikan NaN.
  • Jika operan tidak ditentukan, ralat berlaku.
  • Jika kedua-dua operan adalah jenis boolean, kembalikan nilai boolean

Sama seperti operasi logik AND dalam Java, operasi logik AND dalam JavaScript juga merupakan operasi mudah, iaitu, jika operan pertama menentukan keputusan, operan kedua tidak akan dikira. Untuk operasi logik DAN, jika operan pertama adalah palsu, maka tidak kira apa nilai operan kedua, hasilnya tidak boleh sama dengan benar.
Pertimbangkan contoh berikut:

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

Hasil pelaksanaan kod:

Kod ini akan membuang ralat semasa melakukan operasi logik DAN kerana pembolehubah bUnknown tidak ditentukan. Pembolehubah bTrue mempunyai nilai benar kerana operasi logik DAN terus menilai pembolehubah bTidak diketahui. Melakukannya akan menimbulkan ralat kerana nilai bUnknown tidak ditentukan dan tidak boleh digunakan dalam operasi logik DAN.
Jika anda mengubah suai contoh ini dan menetapkan nombor pertama kepada palsu, maka ralat tidak akan berlaku:

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

Dalam kod ini, skrip akan mengeluarkan nilai yang dikembalikan oleh operasi logik DAN, iaitu rentetan "false". Walaupun pembolehubah bUnknown mempunyai nilai yang tidak ditentukan, ia tidak akan dinilai kerana operan pertama mempunyai nilai palsu.

Hasil jalankan:

Sahkan kelakuan operasi logik Dan operator JavaScript

Kod ujian:

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

Di atas adalah pengenalan lengkap kepada operator logik Dan JavaScript Saya harap ia dapat membantu semua orang mempelajari operator logik js dengan lebih baik.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn