Maison  >  Article  >  interface Web  >  Comment déterminer le type de valeur en JavaScript

Comment déterminer le type de valeur en JavaScript

巴扎黑
巴扎黑original
2017-09-16 09:29:391595parcourir

Il existe un opérateur en js qui peut nous aider à déterminer le type d'une valeur, c'est l'opérateur typeof. A travers cet article, je vais partager avec vous comment déterminer le type d'une valeur en JavaScript. Les amis qui en ont besoin peuvent s'y référer

Nous savons qu'il existe un opérateur en js qui peut nous aider à déterminer le type. d'une valeur. C'est le type d'opérateur.


console.log(typeof 123);  //number
console.log(typeof '123'); //string
console.log(typeof true);  //boolean
console.log(typeof undefined); //undefined
console.log(typeof null); //object
console.log(typeof []);  //object
console.log(typeof {}); //object
console.log(typeof function() {}); //function

Nous pouvons voir les lacunes de typeof à partir des résultats ci-dessus. Il renvoie respectivement un nombre, une chaîne et un booléen pour les valeurs numériques, les chaînes et les valeurs booléennes. . La fonction renvoie la fonction, undéfini renvoie undéfini Sinon, l'objet est renvoyé dans les autres cas.

Donc, si la valeur de retour est un objet, nous ne pouvons pas savoir si le type de la valeur est un tableau, un objet ou d'autres valeurs. Afin d'obtenir avec précision le type de chaque valeur, nous devons utiliser un autre opérateur instanceof dans js. Parlons brièvement de l'utilisation d'instanceof.

L'opérateur instanceof renvoie une valeur booléenne indiquant si l'objet spécifié est une instance d'un certain constructeur.

Le côté gauche de l'opérateur instanceof est l'objet instance et le côté droit est le constructeur. Il vérifie si l'attribut ptototype du constructeur de droite se trouve sur la chaîne de prototypes de l'objet de gauche.


var b = [];
b instanceof Array //true
b instanceof Object //true

Notez que l'opérateur instanceof ne peut être utilisé que pour les objets, pas pour les valeurs de type primitif.

Nous pouvons donc combiner les caractéristiques des opérateurs typeof et instanceof pour porter un jugement plus précis sur le type d'une valeur.


//得到一个值的类型
function getValueType(value) {
  var type = '';
  if (typeof value != 'object') {
    type = typeof value;
  } else {
    if (value instanceof Array) {
      type = 'array';
    } else {
      if (value instanceof Object) {
        type = 'object';
      } else {
        type = 'null';
      }
    }
  }
  return type;
}
getValueType(123);  //number
getValueType('123'); //string
getValueType(true);  //boolean
getValueType(undefined); //undefined
getValueType(null); //null
getValueType([]);   //array
getValueType({});  //object
getValueType(function(){}); //function

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