Memahami Jenis Array dalam JavaScript: Mengapa Typeof Mengembalikan "Objek" Daripada "Array"?
JavaScript mempamerkan tingkah laku yang menarik di mana operator typeof mengembalikan "objek" untuk tatasusunan objek. Ini boleh diperhatikan dalam senario seperti kod berikut:
$.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 }, });
Dalam kod di atas, data ialah susunan objek yang mewakili status Twitter. Walaupun console.dir() melaporkan bahawa jenisnya ialah "Array", typeof mengembalikan "Objek".
Tingkah laku ini berpunca daripada fakta bahawa Tatasusunan JavaScript secara teknikalnya adalah objek. Mereka mewarisi daripada prototaip Objek, yang bermaksud bahawa mereka memiliki sifat dan kaedah seperti objek. Warisan ini bertanggungjawab untuk hasil "Objek" daripada typeof.
Untuk menentukan sama ada pembolehubah benar-benar tatasusunan dalam JavaScript, terdapat beberapa kaedah yang boleh dipercayai:
1. instanceof Operator:
var isArr = data instanceof Array;
2. Kaedah Array.isArray():
var isArr = Array.isArray(data);
3. Object.prototype.toString.call() Kaedah:
isArr = Object.prototype.toString.call(data) == '[object Array]';
4. Fungsi jQuery isArray() (jika menggunakan jQuery):
var isArr = $.isArray(data);
Kaedah ini menawarkan hasil yang lebih tepat berbanding typeof apabila membezakan antara tatasusunan dan jenis objek lain. Dengan memanfaatkan alternatif ini, pembangun dengan yakin boleh bekerja dengan tatasusunan dalam JavaScript tanpa kekeliruan yang disebabkan oleh jenis tingkah laku.
Atas ialah kandungan terperinci Mengapakah `typeof` Mengembalikan \'Objek\' untuk Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!