Nilai Boolean adalah mutlak, benar atau palsu. Itu adalah potongan yang jelas. Jenis data lain dalam JavaScript juga mempunyai nilai yang wujud iaitu benar dan salah, tetapi ia tidak begitu jelas kerana ia kelihatan seperti 32, null, 0 dan 'Hello' dan bukannya benar dan palsu. Mengetahui bahawa semua nilai mempunyai nilai yang wujud ini bermakna kita boleh melaksanakan operasi pada semua jenis data yang biasanya digunakan untuk Boolean. Ini memberikan kami lebih kreativiti dan fleksibiliti semasa pengekodan.
Apabila bekerja dengan kata kunci aliran kawalan seperti if dan operator logik seperti AND (&&) dan OR (||), kami menggunakan Booleans untuk mencapai hasil tertentu. Boolean ini boleh digunakan secara eksplisit dengan benar atau salah, tetapi kami sering menjananya dengan pengendali perbandingan seperti ===, <, dan >.
Apakah yang berlaku jika kita tidak menggunakan Boolean dengan aliran kawalan atau pengendali logik? Nah, anda bertuah! Semua nilai sememangnya benar atau palsu untuk membantu dengan ini. Kita boleh mengkategorikan semua nilai kepada dua kategori: benar atau palsu.
Apabila cuba untuk mengetahui sama ada nilai itu benar atau palsu, sebaiknya ingat nilai palsu kerana jumlahnya hanya terhad:
Semua yang lain adalah benar. Jika anda tidak pasti sama ada sesuatu itu benar atau palsu atau anda menemui situasi unik yang kelihatan samar-samar, anda sentiasa boleh membuat pernyataan if untuk melihat sama ada kod di dalam blok kod berikut berjalan.
if (23) { console.log(“truthy”); } // Prints “truthy” else { console.log(“falsy”); } if (null) { console.log(“truthy”); } else { console.log(“falsy”); } // Prints “falsy”
Apabila menggunakan Booleans dengan Logical AND (&&), kedua-dua nilai perlu benar agar pengendali logik kembali benar. Jika tidak, jika sekurang-kurangnya satu nilai palsu, ia akan mengembalikan palsu.
console.log(false && false); // false console.log(true && false); // false console.log(true && true); // true
Memahami mekanik operator logik DAN (&&) boleh membantu anda apabila ia berkaitan dengan nilai kebenaran dan palsu. Jika nilai di sebelah kiri palsu, kembalikan; jika tidak, kembalikan nilai di sebelah kanan.
console.log(0 && 1); // 0 console.log("a" && ""); // "" (an empty string) console.log([] && [1, 2, 3]); // [1, 2, 3]
Pengendali logik DAN (&&) mahu mengembalikan nilai palsu dan hanya mengembalikan nilai kebenaran di sebelah kanan jika kedua-duanya benar. Anda boleh memikirkan dua hujah seperti ini:
(Sebelah Kiri) Hanya gunakan saya jika saya adalah nilai palsu. && (Sebelah Kanan) Jika tidak, gunakan saya.
Apabila menggunakan Booleans dengan Logical OR (||), kedua-dua nilai perlu palsu agar pengendali logik mengembalikan palsu. Jika tidak, jika sekurang-kurangnya satu nilai adalah benar, ia akan kembali benar.
console.log(false || false); // false console.log(true || false); // true console.log(true || true); // true
Begini cara pengendali logik OR (||) berfungsi: jika nilai di sebelah kiri adalah benar, kembalikannya; jika tidak, kembalikan nilai di sebelah kanan.
console.log(1 || 0); // 1 console.log("" || "a"); // "a" console.log(undefined || null); // null console.log([] || [1, 2, 3]); // []
Pengendali logik OR (||) mahu mengembalikan nilai kebenaran dan hanya mengembalikan nilai palsu di sebelah kanan jika kedua-duanya palsu. Anda boleh memikirkan dua hujah seperti ini:
(Sebelah Kiri) Hanya gunakan saya jika saya seorang yang jujur. || (Sebelah Kanan) Jika tidak, gunakan saya.
Katakanlah anda mencipta objek yang mewakili orang yang disertakan dengan sifat yang menerangkan orang itu bersama-sama dengan fungsi yang menyambut orang lain menggunakan sifat lain dalam objek itu.
function Person(name) { // If name is undefined, this.name will // default to 'a person with no name' this.name = name || 'a person with no name'; this.greet = function() { console.log('Hello, I am ' + this.name + '.'); }; } // Create Person variables var tyler = new Person('Tyler'); var mystery = new Person(); // Without an input, this.name defaults to the // second option since name is undefined. // Call greet() from each Person object tyler.greet(); // "Hello, I am Tyler." mystery.greet(); // "Hello, I am a person with no name."
Dalam contoh di atas, kami menjangkakan input untuk parameter nama, jadi nilai kedua dalam operasi OR (||) hanya digunakan jika nama tidak ditentukan (tiada argumen pada panggilan fungsi).
Jika anda mencipta objek dan ingin memastikan anda mempunyai bilangan input yang ditetapkan sebelum anda membuat objek, anda boleh merantai bersama operator logik DAN (&&) merentas setiap parameter yang diperlukan.
function Person(firstName, lastName, age) { if (firstName && lastName && age) { this.firstName = firstName; this.lastName = lastName; this.fullName = `${this.firstName} ${this.lastName}`; this.age = age; this.greet = function() { console.log(`Hello, my name is ${this.fullName} and I'm ${this.age} years old.`); }; } // If any argument is missing, the object will only have this property. else { this.greet = function() { console.log(`Hello, I am not a fully formed Person.`) }; } } var tyler = new Person('Tyler', 'Meyer', 32); var brad = new Person('Brad', '', 38); tyler.greet(); // "Hello, my name is Tyler Meyer and I'm 32 years old." brad.greet(); // "Hello, I am not a fully formed Person."
Pernyataan if sedang menyemak hujah untuk setiap parameter sebelum ia mencipta objek Orang penuh. Jika walaupun satu argumen adalah nilai palsu, ia akan mencipta objek dengan pernyataan else. Oleh itu, kita boleh menghalang objek yang tidak lengkap atau mencipta objek lalai untuk entri yang tidak lengkap.
Jika anda memerlukan nilai lalai sehingga nilai dibekalkan, operator logik OR (||) boleh sangat membantu. Jika anda perlu memerlukan berbilang nilai sebelum meneruskan, operator logik DAN (&&) boleh sangat membantu. Ini hanyalah dua contoh, dan semasa anda terus meneroka operator ini, anda akan mengetahui terdapat banyak lagi cara untuk menggunakan operator ini di luar pemeriksaan biasa untuk nilai Boolean benar atau palsu. Sentiasa ingat dua perkara ini apabila melihat menggunakan logika AND (&&) dan OR (||):
Jika anda mempunyai sebarang soalan, sila tinggalkan dalam komen. Saya berbesar hati untuk membincangkan topik ini dengan lebih lanjut.
Selamat pengekodan!
Atas ialah kandungan terperinci Penggunaan Fleksibel bagi AND (&&) dan OR (||) Logik dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!