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 :
$.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
}
});
Alors que console.dir(data) identifie correctement la variable en tant que tableau, typeof data renvoie de manière incongrue "Object".
L'explication réside dans la spécification particulière de JavaScript, où l'opérateur typeof renvoie le type de la propriété interne [[Class]] 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 JavaScript. code.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3