Memahami Percanggahan: Mengapa jenis Array dengan Objek Mengembalikan "Objek"
Pembangun mungkin menghadapi fenomena yang mengejutkan: apabila menggunakan jenis pada tatasusunan mengandungi objek, ia mengembalikan "objek" dan bukannya "tatasusunan." Artikel ini menyelidiki tingkah laku yang kelihatan bercanggah ini.
Dengan meneliti contoh, mari kita jelaskan isu ini:
<code class="javascript">$.ajax({ url: 'http://api.twitter.com/1/statuses/user_timeline.json', data: { screen_name: 'mick__romney'}, dataType: 'jsonp', success: function(data) { console.dir(data); //Array[20] alert(typeof data); //Object } });</code>
Sementara console.dir(data) mengenal pasti pembolehubah sebagai tatasusunan, jenis data secara tidak selaras mengembalikan "Objek."
Penjelasan terletak pada JavaScript yang unik spesifikasi, di mana operator jenis mengembalikan jenis harta dalaman [[Kelas]] objek. Dalam kes tatasusunan, sifat [[Kelas]] mereka ditetapkan kepada "Array", tetapi apabila dikelilingi oleh objek, sifat [[Kelas]] bertukar kepada "Objek."
Untuk memastikan pemeriksaan jenis yang tepat , pembangun boleh menggunakan pelbagai pendekatan:
Dengan memahami keanehan ini dan menggunakan teknik ini, pembangun boleh mengendalikan tatasusunan objek dalam kod JavaScript mereka dengan berkesan.
Atas ialah kandungan terperinci Mengapakah `typeof` Mengembalikan \'Objek\' untuk Tatasusunan yang Mengandungi Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!