Rumah >hujung hadapan web >tutorial js >Apakah pengendali logik dalam javascript?
Pengendali logik JavaScript ialah: 1. Logik DAN "&&", yang mengembalikan benar hanya apabila kedua-dua operan adalah benar 2. Logik ATAU "||", jika kedua-dua operan adalah benar, atau satu daripadanya adalah benar, kemudian kembalikan benar; 3. Logik bukan "!", tukar nilai operan kepada nilai Boolean, dan menafikannya.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Pengendali logik biasanya digunakan untuk menggabungkan berbilang ungkapan Hasil daripada pengendali logik ialah nilai Boolean, yang hanya boleh mempunyai dua hasil, tidak benar. Jadual berikut menyenaraikan operator logik yang disokong dalam JavaScript:
运算符 | 名称 | 示例 |
---|---|---|
&& | 逻辑与 | x && y 表示如果 x 和 y 都为真,则为真 |
|| | 逻辑或 | x || y 表示如果 x 或 y 有一个为真,则为真 |
! | 逻辑非 | !x 表示如果 x 不为真,则为真 |
Logikal DAN operasi
Logikal DAN operasi (&&
) ialah operasi AND Boolean. Mengembalikan benar hanya jika kedua-dua operan adalah benar, jika tidak mengembalikan palsu. Penerangan terperinci ditunjukkan dalam jadual.
第一个操作数 | 第二个操作数 | 运算结果 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Logik DAN ialah sejenis logik litar pintas Jika ungkapan di sebelah kiri palsu, hasilnya akan menjadi litar pintas dan dikembalikan terus, dan ungkapan di sebelah kanan tidak lagi. dinilai. Logik operasi adalah seperti berikut:
Langkah 1: Kira nilai operan pertama (ungkapan di sebelah kiri).
Langkah 2: Semak nilai operan pertama. Jika nilai ungkapan di sebelah kiri boleh ditukar kepada palsu (seperti null, undefined, NaN, 0, "", false), maka operasi akan tamat dan nilai operan pertama akan dikembalikan secara langsung.
Langkah 3: Jika operan pertama boleh ditukar kepada benar, nilaikan operan kedua (ungkapan sebelah kanan).
Langkah 4: Kembalikan nilai operan kedua.
Contoh 1
Kod berikut menggunakan operasi logik DAN untuk mengesan pembolehubah dan memulakannya.
var user; //定义变量 (! user && console.log("没有赋值")); //返回提示信息“没有赋值”
bersamaan dengan:
var user; //定义变量 if (! user){ //条件判断 console.log("变量没有赋值"); }
Jika nilai pengguna pembolehubah ialah 0 atau nilai palsu seperti rentetan kosong ditukar kepada nilai Boolean, ia adalah palsu , kemudian apabila pembolehubah diberikan nilai Selepas itu, ia masih menggesa bahawa pembolehubah tidak diberikan nilai. Oleh itu, reka bentuk mesti memastikan bahawa ungkapan di sebelah kiri logik DAN mengembalikan nilai yang boleh diramal.
var user = 0; //定义并初始化变量 (! user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值”
Ungkapan di sebelah kanan seharusnya tidak mengandungi operasi yang sah seperti penugasan, kenaikan, pengurangan dan panggilan fungsi, kerana apabila ungkapan di sebelah kiri palsu, ungkapan di sebelah kanan akan menjadi dilangkau secara langsung, yang akan menyebabkan masalah berikut berpotensi impak pada operasi.
Logik ATAU operasi
Logik ATAU operasi||
ialah operasi Boolean ATAU. Jika kedua-dua operan adalah benar, atau salah satu daripadanya adalah benar, ia mengembalikan benar, jika tidak ia mengembalikan palsu. Butirannya ditunjukkan dalam rajah.
第一个操作数 | 第二个操作数 | 运算结果 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
逻辑或也是一种短路逻辑,如果左侧表达式为 true,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下:
第 1 步:计算第一个操作数(左侧表达式)的值。
第 2 步:检测第一个操作数的值。如果左侧表达式的值可转换为 true,那么就会结束运算,直接返回第一个操作数的值。
第 3 步:如果第一个操作数可以转换为 false,则计算第二个操作数(右侧表达式)的值。
第 4 步:返回第二个操作数的值。
示例2
针对下面 4 个表达式:
var n = 3; (n == 1) && console.log(1); (n == 2) && console.log(2); (n == 3) && console.log(3); ( ! n ) && console.log("null");
可以使用逻辑或对其进行合并:
var n = 3; (n == 1) && console.log(1) || (n == 2) && console.log(2) || (n == 3) && console.log(3) || ( ! n ) && console.log("null");
由于&&运算符的优先级高于||运算符的优先级,所以不必使用小括号进行分组。不过使用小括号分组后,代码更容易阅读。
var n = 3; ((n == 1) && console.log(1)) || ((n == 2) && console.log(2)) || ((n == 3) && console.log(3)) || (( ! n ) && console.log("null")) ||
逻辑与和逻辑或运算符具有以下 2 个特点:
在逻辑运算过程中,临时把操作数转换为布尔值,然后根据布尔值决定下一步的操作,但是不会影响操作数的类型和最后返回结果。
受控于第一个操作数,可能不会执行第二个操作数。
逻辑非运算
逻辑非运算!
是布尔取反操作(NOT)。作为一元运算符,直接放在操作数之前,把操作数的值转换为布尔值,然后取反并返回。
示例3
下面列举一些特殊操作数的逻辑非运算返回值。
console.log( ! {} ); //如果操作数是对象,则返回false console.log( ! 0 ); //如果操作数是0,则返回true console.log( ! (n = 5)); //如果操作数是非零的任何数字,则返回false console.log( ! null ); //如果操作数是null,则返回true console.log( ! NaN ); //如果操作数是NaN,则返回true console.log( ! Infinity ); //如果操作数是Infinity,则返回false console.log( ! ( - Infinity )); //如果操作数是-Infinity,则返回false console.log( ! undefined ); //如果操作数是undefined,则返回true
示例4
如果对操作数执行两次逻辑非运算操作,就相当于把操作数转换为布尔值。
console.log( ! 0 ); //返回true console.log( ! ! 0 ); //返回false
逻辑与和逻辑或运算的返回值不必是布尔值,但是逻辑非运算的返回值一定是布尔值。
【推荐学习:javascript高级教程】
Atas ialah kandungan terperinci Apakah pengendali logik dalam javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!