Rumah  >  Artikel  >  hujung hadapan web  >  Adakah Menyemak `some_variable` dalam Pernyataan `if` Setara dengan Menyemak `undefined` dan `null`?

Adakah Menyemak `some_variable` dalam Pernyataan `if` Setara dengan Menyemak `undefined` dan `null`?

Susan Sarandon
Susan Sarandonasal
2024-10-30 22:51:03218semak imbas

Is Checking `some_variable` in an `if` Statement Equivalent to Checking for `undefined` and `null`?

Pemeriksaan Bersyarat JavaScript untuk Pembolehubah Tidak Ditakrifkan atau Null

Dalam JavaScript, kami sering menghadapi keperluan untuk menyemak sama ada pembolehubah tidak ditentukan atau batal. Pendekatan biasa melibatkan corak kod berikut:

<code class="javascript">if (typeof(some_variable) != 'undefined' && some_variable != null) {
  // Do something with some_variable
}</code>

Walau bagaimanapun, corak ini boleh menjadi verbose. Untuk mengoptimumkan semakan ini, sesetengah pembangun mencadangkan untuk memudahkan kod kepada:

<code class="javascript">if (some_variable) {
  // Do something with some_variable
}</code>

Walaupun versi yang lebih pendek ini kelihatan logik, ia menimbulkan persoalan penting tentang kesetaraan kod asal.

Perbezaan antara Dua Pendekatan

Perbezaannya terletak pada kelakuan corak kod kedua. Jika some_variable tidak ditentukan, Firebug akan membuang ralat semasa menilai keadaan. Ini bermakna corak kedua menganggap pembolehubah diisytiharkan, manakala corak pertama mengendalikan pembolehubah yang diisytiharkan dan tidak diisytiharkan.

Penyelesaian Alternatif

Cara yang lebih cekap dan konsisten untuk menyemak pembolehubah nol atau tidak ditentukan ialah:

<code class="javascript">if (some_variable == null) {
  // Do something with some_variable
}</code>

Coretan kod ini mengenal pasti dengan tepat apabila pembolehubah sama ada batal atau tidak ditentukan, tanpa memerlukan pengisytiharan atau menyebabkan ralat masa jalan dalam Firebug.

Nota Tambahan

  • Pendekatan ringkas ini berfungsi dengan baik dalam senario tertentu, seperti menyemak argumen atau sifat pilihan dalam objek sedia ada.
  • Ia tidak bersamaan dengan menyemak nilai kosong atau palsu, yang memerlukan pendekatan berbeza.
  • Menggunakan === untuk semakan kesaksamaan yang ketat biasanya disyorkan, kecuali semakan batal dan tidak ditentukan.

Alternatif JavaScript Moden

Dalam penyemak imbas moden, pengendali penggabungan Nullish (??) dan Tugasan batal logik (??=) menyediakan cara ringkas untuk menetapkan nilai lalai apabila pembolehubah adalah batal atau tidak ditentukan:

<code class="javascript">a.speed ??= 42; // Sets default speed to 42 if null or undefined</code>

Atas ialah kandungan terperinci Adakah Menyemak `some_variable` dalam Pernyataan `if` Setara dengan Menyemak `undefined` dan `null`?. 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