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>
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:
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!