Comprendre la contradiction : pourquoi typeof Array avec des objets renvoie "Object"
Les développeurs peuvent rencontrer un phénomène surprenant : lors de l'invocation de typeof sur un tableau contenant des objets, il renvoie inexplicablement « objet » au lieu de « tableau ». Cet article se penche sur ce comportement apparemment contradictoire.
En examinant un exemple, illustrons le problème :
<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>
Bien que console.dir(data) identifie correctement la variable en tant que tableau, typeof data renvoie de manière incongrue "Objet".
L'explication réside dans la spécification particulière de JavaScript, où l'opérateur typeof renvoie le type de la propriété [[Class]] interne de l'objet. Dans le cas des tableaux, leur propriété [[Class]] est définie sur "Array", mais lorsqu'elle est entourée d'objets, la propriété [[Class]] devient "Object".
Pour garantir une vérification de type précise , les développeurs peuvent utiliser différentes approches :
En comprenant cette particularité et en utilisant ces techniques, les développeurs peuvent gérer efficacement des tableaux d'objets dans leur code JavaScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!