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
}
undefined
bukan kata kunci JavaScript (meskipun semua orang tampaknya berpikir demikian). Jika Anda mau, Anda bisa membuat variabel bernama undefined
dan 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.
undefined
harus 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 typeof
mengembalikan 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 typeof
Operator 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 undefined
dan 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: