Maison >interface Web >js tutoriel >Une brève discussion sur le jugement du type de données js et le jugement du tableau

Une brève discussion sur le jugement du type de données js et le jugement du tableau

高洛峰
高洛峰original
2017-01-14 10:02:411174parcourir

Écrit au début :

Hier lors de l'entretien, j'ai constaté que je n'avais pas répondu à une question très, très simple. C'était peut-être parce que j'étais trop nerveux, et j'avais l'impression de faire des choses. moi-même je pleure. Plus tard, j'y ai réfléchi, je devrais l'enregistrer soigneusement pour pouvoir avoir une profonde impression. La révolution n’a pas encore réussi, et nous devons encore travailler dur pour devenir forts !

1. Les six principaux types de données js

numéro : nombres, entiers, nombres à virgule flottante, etc.,

chaîne : guillemets simples ou doubles,

Booléen : Renvoie vrai et faux, ces deux valeurs ne correspondent pas forcément à 1 et 0

objet : Objet, qui peut être créé en exécutant l'opérateur new suivi du nom du type d'objet à créer.

null : Il n'existe qu'un seul type de données valeur. Logiquement, la valeur nulle représente un pointeur d'objet nul.

undefined : Indéfini. Lorsqu'une variable est déclarée à l'aide de var mais non initialisée, la valeur de la variable n'est pas définie.

2. 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 renvoyés :

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类型

En plus des quatre types chaîne, nombre, booléen et indéfini, nul et object , le tableau renvoie tous les types d'objets ! ! !

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

3. Comment déterminer le type de tableau en js

1) instanceof

instanceof est un opérateur ternaire utilisé pour déterminer si une variable est une instance d'un objet. 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) définition du constructeur

dans la définition du W3C : attribut constructeur Renvoie un référence à la fonction de tableau qui a créé cet objet

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

La méthode pour juger des différents types est :

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

Méthode générale :

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

3) Jugement caractéristique

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]'

L'article ci-dessus parle brièvement du jugement du type de données js et arrays Le jugement est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence, et j'espère également que vous soutiendrez le site Web PHP chinois.

Pour plus d'articles sur le jugement des types de données js et le jugement des tableaux, veuillez faire attention au site Web PHP 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