Rumah  >  Artikel  >  hujung hadapan web  >  Penggunaan Fleksibel bagi AND (&&) dan OR (||) Logik dalam JavaScript

Penggunaan Fleksibel bagi AND (&&) dan OR (||) Logik dalam JavaScript

DDD
DDDasal
2024-09-26 07:16:42922semak imbas

Flexible Uses of the Logical AND (&&) and OR (||) in JavaScript

pengenalan

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.

Memahami Nilai Benar dan Salah

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:

  • palsu (nilai Boolean)
  • null
  • tidak ditentukan
  • NaN (bukan nombor)
  • 0 (nilai nombor)
  • "" (nilai rentetan kosong)

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”

Logik DAN (&&)

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.

Logik ATAU (||)

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.

Penggunaan Kreatif AND (&&) dan OR (||)

Menggunakan Nilai Lalai Apabila Menjangkakan Input

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

Memerlukan Berbilang Input

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.

Kesimpulan

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 (||):

  • ATAU (||) : Hanya gunakan nilai di sebelah kiri jika ia benar.
  • DAN (&&) : Hanya gunakan nilai di sebelah kiri jika ia palsu.

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!

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