Maison >interface Web >js tutoriel >Méthode JavaScript pour déterminer si une variable est un tableau (Array)_javascript skills
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 这两段代码是一样的
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));