Maison >interface Web >js tutoriel >Méthode JavaScript pour déterminer si une variable est un tableau (Array)_javascript skills

Méthode JavaScript pour déterminer si une variable est un tableau (Array)_javascript skills

WBOY
WBOYoriginal
2016-05-16 15:14:001243parcourir

Aujourd'hui, l'éditeur compilera quelques connaissances pertinentes sur JavaScript pour déterminer si une variable est un tableau (Array). Le sujet sera développé à travers les quatre points suivants. Le contenu spécifique est le suivant :

1. Typeof est-il vraiment si puissant ? ?

//首先看代码
var ary = [1,23,4];
console.log(typeof ary); //输出结果是Object

La méthode ci-dessus ne peut pas détecter en temps réel s'il s'agit d'un tableau, mais peut uniquement déterminer son type. Par conséquent, typeof est efficace pour juger les données de type de base, mais elle ne peut pas tester avec précision s'il s'agit d'un tableau (l'utilisation spécifique de. typeof sera mentionné plus tard), revenons maintenant au sujet)

2.instance de jugement

var ary = [1,23,4];
console.log(ary instanceof Array)//true;

À en juger par l'effet de sortie, c'est tout à fait satisfaisant. Il peut détecter avec précision si le type de données est un tableau. Pensons d'abord aux défauts de cette méthode. 🎜>

3. Méthode de chaîne de prototypes

var ary = [1,23,4];
console.log(ary.__proto__.constructor==Array);//true
console.log(ary.constructor==Array)//true 这两段代码是一样的
Cette méthode est tellement sophistiquée~~ Elle utilise la méthode de la chaîne de prototypes, mais celle-ci est compatible. Dans les premières versions d'IE, __proto__ n'est pas défini~ De plus, cela a encore des limites, résumons maintenant les limites des deuxième et troisième. méthodes

Résumer les limites des deuxième et troisième méthodes

Les variables jugées par instanceof et constructeur doivent être déclarées sur la page actuelle. Par exemple, une page (page parent) a un cadre, une page (page enfant) est référencée dans le cadre et un ary est déclaré dans le cadre. page enfant, et attribuez-la à une variable de la page parent, puis jugez la variable, Array == object.constructor; retournera false

Raison :

1. Le tableau est constitué de données de référence. Pendant le processus de transfert, il s'agit uniquement du transfert de l'adresse de référence.

2. L'adresse référencée par l'objet natif Array de chaque page est différente. Le constructeur correspondant du tableau déclaré dans la sous-page est l'objet Array de la sous-page ; Tableau Ce n'est pas égal au tableau de sous-pages ; rappelez-vous, sinon il sera difficile de suivre le problème !

4. Méthodes courantes

var ary = [1,23,4];
function isArray(o){
return Object.prototype.toString.call(o)=='[object Array]';
}
console.log(isArray(ary));
Pour une utilisation spécifique de Object.prototype.toString, veuillez vous référer à

Utilisation de Object.prototype.toString

D'accord, je vais vous présenter beaucoup de choses sur la méthode JavaScript pour déterminer si une variable est un tableau (Array). Aujourd'hui, je vais principalement résumer ces quatre types pour vous. Si cet article n'est pas bien écrit, veuillez m'en donner quelques-uns. un conseil. Merci !

Déclaration:
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