Saya memeriksa if(response[0].title !== undefined), tetapi saya mendapatkan kesalahan:
UnEught TypeError: Tidak dapat membaca properti 'judul' yang tidak terdefinisi.
Saya memeriksa if(response[0].title !== undefined), tetapi saya mendapatkan kesalahan:
UnEught TypeError: Tidak dapat membaca properti 'judul' yang tidak terdefinisi.
Jawaban:
response[0] tidak ditentukan, periksa apakah sudah ditentukan lalu periksa judul propertinya.
if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
//Do something
}
undefinedbukan kata kunci JavaScript (meskipun semua orang tampaknya berpikir demikian). Jika Anda mau, Anda bisa membuat variabel bernama undefineddan pemeriksaan ini akan salah. Satu-satunya cara yang benar adalah dengan memeriksa (typeof myVar !== 'undefined').
undefined?
Periksa apakah response[0]tidak terdefinisi:
if(response[0] !== undefined) { ... }
Jika Anda masih perlu memeriksa judul secara eksplisit, lakukan setelah pemeriksaan awal:
if(response[0] !== undefined && response[0].title !== undefined){ ... }
Saya mengalami masalah dengan semua contoh kode lainnya di atas. Di Chrome, ini adalah kondisi yang berfungsi untuk saya:
typeof possiblyUndefinedVariable !== "undefined"
Saya harus mengujinya di browser lain dan melihat bagaimana keadaannya saya kira.
undefinedharus menjadi string.
Sebenarnya Anda harus mengelilinginya dengan blok Coba / Tangkap agar kode Anda tidak berhenti bekerja. Seperti ini:
try{
if(typeof response[0].title !== 'undefined') {
doSomething();
}
}catch(e){
console.log('responde[0].title is undefined');
}
jenis:
var foo;
if (typeof foo == "undefined"){
//do stuff
}
Itu karena response[0]itu sendiri tidak terdefinisi.
Periksa apakah condition == null; Itu akan menyelesaikan masalah
Anda harus terlebih dahulu memeriksa apakah response[0]tidak terdefinisi, dan hanya jika tidak, periksa sisanya. Itu berarti bahwa dalam kasus Anda, response[0]tidak ditentukan.
Saya tahu saya terlambat ke sini 7 bulan, tetapi saya menemukan pertanyaan ini dan itu terlihat menarik. Saya mencoba ini di konsol browser saya.
try{x,true}catch(e){false}
Jika variabel x tidak terdefinisi, kesalahan ditangkap dan itu akan salah, jika tidak, itu akan mengembalikan true. Jadi Anda bisa menggunakan fungsi eval untuk mengatur nilai ke variabel
var isxdefined = eval('try{x,true}catch(e){false}')
Dalam beberapa jawaban ini ada kesalahpahaman mendasar tentang cara menggunakan typeof.
Salah
if (typeof myVar === undefined) {
Benar
if (typeof myVar === 'undefined') {
Alasannya adalah typeofmengembalikan string. Karena itu, Anda harus memeriksa apakah ia mengembalikan string "tidak terdefinisi" daripadaundefined (tidak terlampir dalam tanda kutip), yang merupakan salah satu dari jenis primitif JavaScript . The typeofOperator tidak akan pernah kembali nilai tipe undefined.
Tambahan
Kode Anda mungkin secara teknis berfungsi jika Anda menggunakan perbandingan yang salah, tetapi mungkin bukan karena alasan yang Anda pikirkan. Tidak ada yang sudah ada sebelumnyaundefined variabel yang dalam JavaScript - ini bukan semacam kata kunci ajaib yang dapat Anda bandingkan. Anda benar-benar dapat membuat variabel yang disebut undefineddan memberikan nilai apa pun yang Anda suka.
let undefined = 42;
Dan berikut ini adalah contoh bagaimana Anda dapat menggunakan ini untuk membuktikan metode pertama salah: