Saya memeriksa if(response[0].title !== undefined)
, tetapi saya mendapatkan kesalahan:
UnEught TypeError: Tidak dapat membaca properti 'judul' yang tidak terdefinisi.
javascript
undefined
Raimonds
sumber
sumber
Jawaban:
response[0]
tidak ditentukan, periksa apakah sudah ditentukan lalu periksa judul propertinya.sumber
undefined
bukan kata kunci JavaScript (meskipun semua orang tampaknya berpikir demikian). Jika Anda mau, Anda bisa membuat variabel bernamaundefined
dan pemeriksaan ini akan salah. Satu-satunya cara yang benar adalah dengan memeriksa(typeof myVar !== 'undefined')
.undefined
?Periksa apakah
response[0]
tidak terdefinisi:Jika Anda masih perlu memeriksa judul secara eksplisit, lakukan setelah pemeriksaan awal:
sumber
Saya mengalami masalah dengan semua contoh kode lainnya di atas. Di Chrome, ini adalah kondisi yang berfungsi untuk saya:
Saya harus mengujinya di browser lain dan melihat bagaimana keadaannya saya kira.
sumber
undefined
harus menjadi string.Sebenarnya Anda harus mengelilinginya dengan blok Coba / Tangkap agar kode Anda tidak berhenti bekerja. Seperti ini:
sumber
jenis:
sumber
Itu karena
response[0]
itu sendiri tidak terdefinisi.sumber
Periksa apakah
condition == null
; Itu akan menyelesaikan masalahsumber
Periksa apakah Anda
response[0]
benar - benar ada, kesalahannya sepertinya tidak.sumber
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.sumber
Saya tahu saya terlambat ke sini 7 bulan, tetapi saya menemukan pertanyaan ini dan itu terlihat menarik. Saya mencoba ini di konsol browser saya.
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
sumber
Dalam beberapa jawaban ini ada kesalahpahaman mendasar tentang cara menggunakan
typeof
.Salah
Benar
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 . Thetypeof
Operator tidak akan pernah kembali nilai tipeundefined
.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 sebelumnya
undefined
variabel yang dalam JavaScript - ini bukan semacam kata kunci ajaib yang dapat Anda bandingkan. Anda benar-benar dapat membuat variabel yang disebutundefined
dan memberikan nilai apa pun yang Anda suka.Dan berikut ini adalah contoh bagaimana Anda dapat menggunakan ini untuk membuktikan metode pertama salah:
https://jsfiddle.net/p6zha5dm/
sumber