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