Array-Typ in JavaScript verstehen: Warum gibt typeof „Object“ anstelle von „Array“ zurück?
JavaScript zeigt ein faszinierendes Verhalten, bei dem die Der Operator „typeof“ gibt „Objekt“ für ein Array von Objekten zurück. Dies kann in Szenarien wie dem folgenden Code beobachtet werden:
$.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 }, });
Im obigen Code sind Daten ein Array von Objekten, die Twitter-Status darstellen. Während console.dir() meldet, dass der Typ „Array“ ist, gibt typeof „Object“ zurück.
Dieses Verhalten ergibt sich aus der Tatsache, dass JavaScript-Arrays technisch gesehen Objekte sind. Sie erben vom Object-Prototyp, was bedeutet, dass sie objektähnliche Eigenschaften und Methoden besitzen. Diese Vererbung ist für das „Object“-Ergebnis von typeof verantwortlich.
Um festzustellen, ob eine Variable wirklich ein Array in JavaScript ist, gibt es mehrere zuverlässige Methoden:
1. Instanz von Operator:
var isArr = data instanceof Array;
2. Array.isArray() Methode:
var isArr = Array.isArray(data);
3. Object.prototype.toString.call() Methode:
isArr = Object.prototype.toString.call(data) == '[object Array]';
4. jQuery isArray()-Funktion (bei Verwendung von jQuery):
var isArr = $.isArray(data);
Diese Methoden bieten genauere Ergebnisse als typeof bei der Unterscheidung zwischen Arrays und anderen Objekttypen. Durch die Nutzung dieser Alternativen können Entwickler sicher mit Arrays in JavaScript arbeiten, ohne durch die Art des Verhaltens verwirrt zu werden.
Das obige ist der detaillierte Inhalt vonWarum gibt „typeof' „Object' für JavaScript-Arrays zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!