Heim >Web-Frontend >js-Tutorial >Warum gibt „typeof' „Objekt' für Arrays von Objekten in JavaScript zurück?

Warum gibt „typeof' „Objekt' für Arrays von Objekten in JavaScript zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 20:12:02912Durchsuche

Why does `typeof` return

Untersuchung des einzigartigen JavaScript-Verhaltens: Warum Arrays von Objekten „Objekt“ statt „Array“ zurückgeben

In JavaScript ein faszinierendes Phänomen entsteht beim Arbeiten mit Arrays von Objekten. Überraschenderweise werden sie trotz ihrer Array-ähnlichen Natur als Objekte klassifiziert, wenn der Operator „typeof“ verwendet wird. Diese Diskrepanz kann ziemlich verwirrend sein, insbesondere in Fällen wie den folgenden:

$.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
    }
});​

Dieses Verhalten ist auf eine Besonderheit in der JavaScript-Spezifikation zurückzuführen, die Array-Objekte als vom Typ Object betrachtet. Dies bedeutet jedoch nicht, dass Arrays und Objekte austauschbar sind. Um genau zu bestimmen, ob eine Variable ein Array darstellt, verwenden Sie die folgenden Methoden:

  • instanceof Array: Prüft, ob eine Variable eine Instanz des Array-Konstruktors ist.
  • Array.isArray(data): Eine native Methode, die speziell entwickelt wurde, um zu bestimmen, ob eine Variable ein Array ist.
  • Object.prototype.toString.call(data) == ' [object Array]': Ein zuverlässiger Ansatz, der die toString-Methode des Object-Prototyps nutzt.
  • jQuery.isArray(data): Eine praktische Option für jQuery-Benutzer.

Durch die Verwendung dieser Techniken können Sie genau erkennen, ob eine Variable ein Array ist, selbst wenn sie Objekte enthält, und so die offensichtliche Diskrepanz zwischen ihrem arrayähnlichen Verhalten und der Objektklassifizierung auflösen.

Das obige ist der detaillierte Inhalt vonWarum gibt „typeof' „Objekt' für Arrays von Objekten in JavaScript zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn