Maison > interface Web > js tutoriel > Pourquoi `typeof` renvoie-t-il \'object\' pour les tableaux d'objets en JavaScript ?

Pourquoi `typeof` renvoie-t-il \'object\' pour les tableaux d'objets en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-11-02 20:12:02
original
912 Les gens l'ont consulté

Why does `typeof` return

Examen du comportement unique de JavaScript : pourquoi les tableaux d'objets renvoient "objet" au lieu de "tableau"

En JavaScript, un phénomène intrigant se produit lorsque vous travaillez avec des tableaux d'objets. Étonnamment, malgré leur nature de type tableau, ils sont classés comme objets lorsque l'opérateur typeof est utilisé. Cet écart peut être assez déroutant, en particulier dans des cas comme celui-ci :

$.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
    }
});​
Copier après la connexion

Ce comportement découle d'une particularité de la spécification JavaScript qui considère les objets Array comme étant de type Object. Toutefois, cela n’implique pas que les tableaux et les objets soient interchangeables. Pour déterminer avec précision si une variable représente un tableau, utilisez les méthodes suivantes :

  • instanceof Array : Vérifie si une variable est une instance du constructeur Array.
  • Array.isArray(data) : Une méthode native spécialement conçue pour déterminer si une variable est un tableau.
  • Object.prototype.toString.call(data) == ' [object Array]' : Une approche fiable qui utilise la méthode toString du prototype Object.
  • jQuery.isArray(data) : Une option pratique pour les utilisateurs de jQuery.

En utilisant ces techniques, vous pouvez discerner avec précision si une variable est un tableau, même lorsqu'elle contient des objets, résolvant ainsi l'écart apparent entre son comportement de type tableau et la classification des objets.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal