"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi `typeof` renvoie-t-il \"Object\" pour les tableaux contenant des objets en JavaScript ?

Pourquoi `typeof` renvoie-t-il \"Object\" pour les tableaux contenant des objets en JavaScript ?

Publié le 2024-11-08
Parcourir:302

Why Does `typeof` Return \

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 :

  • data instanceof Array : Vérifie si la variable est une instance du type Array.
  • Array.isArray(data) : Une méthode spécialement conçue pour déterminer si un objet est un tableau.
  • Object.prototype.toString.call(data) == '[object Array]' : Une méthode fiable et largement acceptée pour la détection de tableaux.
  • $ .isArray(data) : une fonction spécifique à jQuery conçue pour vérifier les tableaux.

En comprenant cette particularité et en utilisant ces techniques, les développeurs peuvent gérer efficacement des tableaux d'objets dans leur JavaScript. code.

Dernier tutoriel Plus>

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