Saya memiliki beberapa javascript yang menggunakan pemilih kueri

let testobj;
testobj = document.querySelector('#someobject');

Jika saya menulis baris berikutnya seperti di bawah ini tidak masuk if

if (testobj !== null && testobj !== 'undefined')

Jika ditulis seperti di bawah ini

if (testobj != null && testobj != 'undefined')
0
MicroMan 7 Januari 2020, 18:54

2 jawaban

Jawaban Terbaik

Saat menggunakan !== untuk undefined Anda tidak boleh memasukkannya ke dalam tanda kutip. Jadi kodenya akan terlihat seperti:

if(testobj !== undefined)

Atau Anda dapat menggunakan typeof untuk membandingkan kutipan 'tidak terdefinisi', seperti ini:

if(typeof testobj !== 'undefined')
1
Nawed Khan 7 Januari 2020, 16:06

Anda membingungkan dua konvensi untuk perbandingan dengan undefined:

 x === undefined

Dan

 typeof x === 'undefined'

Yang pertama dianggap gaya yang buruk karena undefined hanyalah sebuah variabel, yang ketika digunakan sebelum inisialisasi memiliki nilai undefined, yang bagaimanapun dapat diubah menjadi apa saja, termasuk null atau bahkan 3. Dengan JS modern yang tidak terlalu mengkhawatirkan - undefined sekarang tidak dapat ditulisi, artinya Anda hanya perlu benar-benar khawatir tentang nilai undefined di dalam bugbear JavaScript favorit semua orang, with blok .

Untuk kompatibilitas mundur, terkadang typeof x === 'undefined' lebih disukai, tetapi dalam praktik modern x === undefined tidak masalah. Namun, jika Anda membandingkan x dengan null dan undefined, x != null IMO lebih jelas dan lebih ringkas, meskipun beberapa orang menganjurkan untuk tidak pernah menggunakan == dan != dalam JavaScript.

2
Evan 18 Februari 2020, 15:12