Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum gibt „typeof' „Object' für Arrays zurück, die Objekte in JavaScript enthalten?

Linda Hamilton
Freigeben: 2024-11-03 12:26:29
Original
841 Leute haben es durchsucht

Why Does `typeof` Return

Den Widerspruch verstehen: Warum typeof Array mit Objekten „Objekt“ zurückgibt

Entwickler können auf ein überraschendes Phänomen stoßen: beim Aufrufen von typeof für ein Array Wenn es Objekte enthält, gibt es aus unerklärlichen Gründen „Objekt“ statt „Array“ zurück. Dieser Artikel befasst sich mit diesem scheinbar widersprüchlichen Verhalten.

Anhand eines Beispiels wollen wir das Problem veranschaulichen:

<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>
Nach dem Login kopieren

Während console.dir(data) die Variable korrekt als Array identifiziert, ist typeof Daten geben unpassend „Objekt“ zurück.

Die Erklärung liegt in der besonderen Spezifikation von JavaScript, bei der der Operator „typeof“ den Typ der internen [[Class]]-Eigenschaft des Objekts zurückgibt. Im Fall von Arrays ist ihre [[Class]]-Eigenschaft auf „Array“ festgelegt, aber wenn sie von Objekten umgeben ist, ändert sich die [[Class]]-Eigenschaft in „Object“.

Um eine genaue Typprüfung sicherzustellen können Entwickler verschiedene Ansätze anwenden:

  • Dateninstanz von Array: Überprüft, ob die Variable eine Instanz des Array-Typs ist.
  • Array.isArray(data): Eine Methode, die speziell dafür entwickelt wurde Bestimmen Sie, ob ein Objekt ein Array ist.
  • Object.prototype.toString.call(data) == '[object Array]': Eine zuverlässige und weithin akzeptierte Methode zur Array-Erkennung.
  • $ .isArray(data): Eine jQuery-spezifische Funktion zur Prüfung auf Arrays.

Durch das Verständnis dieser Besonderheit und die Verwendung dieser Techniken können Entwickler Arrays von Objekten in ihrem JavaScript-Code effektiv verarbeiten.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage