Maison  >  Article  >  interface Web  >  Explication détaillée sur la façon de juger le type de données js et l'instance de méthode tableau

Explication détaillée sur la façon de juger le type de données js et l'instance de méthode tableau

伊谢尔伦
伊谢尔伦original
2017-07-18 11:37:221655parcourir

Jugement de type de données typeof

typeof peut résoudre le jugement de la plupart des types de données. Sa valeur de retour est une chaîne qui décrit le type de l'opérande.


//判断变量num是不是一个数字类型
if(typeof num=='number') {
  return true;
}

Résultats de retour :


var a="hling"; console.log(a); //string
var a=1; console.log(a); //number
var a=false; console.log(a); //boolean
var a; console.log(typeof a); //undfined
var a = null; console.log(typeof a); //object
var a = document; console.log(typeof a); //object
var a = []; console.log(a); //object
var a = function(){}; console.log(typeof a) 
//function除了可以判断数据类型还可以判断function类型

Sauf chaîne, nombre, booléen, non défini En plus de ces quatre types, null, object et array renvoient tous des types d'objet ! ! !

Pour les types de fonctions, la fonction est renvoyée, telle que typeof(Date), typeof(eval), etc.

Méthode JS pour déterminer le type de tableau

1) instanceof

instanceof est utilisée pour déterminer an Le fait que la variable soit une instance d'un objet est un opérateur ternaire. Cet opérateur a quelque chose à voir avec l'orientation objet en JavaScript. Pour comprendre cela, vous devez d'abord comprendre l'orientation objet en JavaScript. Car cet opérateur détecte si la chaîne prototype de l'objet pointe vers l'objet prototype du constructeur.


a instanceof b?alert("true"):alert("false") 
//注意b值是你想要判断的那种数据类型,是不是一个字符串,比如Array

Exemple :


var arr = [1,2,3,1]; 
alert(arr instanceof Array); // true

2) constructeur

Définition dans la définition W3C : L'attribut constructeur renvoie une référence à la fonction tableau qui a créé cet objet


var arr = []; 
arr instanceof Array; // true 
arr.constructor == Array; //true

Juger les différents types La méthode est :


console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(false.constructor == Boolean);
console.log([].constructor == Array);
console.log({}.constructor == Object);

La méthode générale :


function isArray(object){
  return object && typeof object==='object' &&
      Array == object.constructor;
}

3) Caractéristiques Juge

object.isArray() pour juger, le but est de détecter avec précision si une valeur est un tableau. IE9+, Firefox 4+, Safari 5+, Opera 10.5+ et Chrome implémentent tous cette méthode. Cependant, les versions antérieures à IE8 ne sont pas prises en charge.


function isArray(object){
  return object && typeof object==='object' &&  
      typeof object.length==='number' && 
      typeof object.splice==='function' &&  
       //判断length属性是否是可枚举的 对于数组 将得到false 
      !(object.propertyIsEnumerable('length'));
}

4) Object.prototype.toString.call


Object.prototype.toString.call(value) == '[object Array]'

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!

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