Maison > interface Web > js tutoriel > le corps du texte

Résumé des méthodes pour déterminer le type de données en JavaScript

高洛峰
Libérer: 2017-01-14 10:19:19
original
1050 Les gens l'ont consulté

typeof
Typeof est souvent utilisé pour déterminer si une variable globale existe si une page définit une variable globale. Si vous faites le jugement suivant :

//haorooms是全局变量
if(haorooms!=undefined){
}//js会报错,说"Uncaught ReferenceError: haorooms is not defined"
Copier après la connexion

La solution est qu'on écrive comme suit :

if(typeof haorooms!=undefined){
}
Copier après la connexion

Après avoir utilisé typeof, aucune erreur ne sera signalée ! C'est l'une des applications de typeof !

De plus, typeof peut également déterminer le type de données ! Comme suit :

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

Évidemment, pour typeof, en plus des quatre premiers types, null, object et array renvoient tous les types d'objet

instanceof< ; 🎜>Vous pouvez l'utiliser pour déterminer s'il s'agit d'un tableau.

var haorooms=[];
console.log(haorooms instanceof Array) //返回true
Copier après la connexion

constructeur

constructor est le constructeur correspondant à l'objet retourné.
Méthodes pour déterminer différents types de données :

console.log([].constructor == Array);
console.log({}.constructor == Object);
console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(true.constructor == Boolean);
 
function employee(name,job,born){
  this.name=name;
  this.job=job;
  this.born=born; }
 
var haorooms=new employee("Bill Gates","Engineer",1985);
console.log(haorooms.constructor); //输出function employee(name, jobtitle, born){this.name = name; this.jobtitle = job; this.born = born;}
Copier après la connexion

En sortant haorooms.constructor, vous pouvez voir que le constructeur est le constructeur correspondant à l'objet renvoyé.

Object.prototype.toString

Nous avons mentionné plus tôt que nous pouvons utiliser l'attribut constructeur pour déterminer le type d'objet. Parlons à nouveau de la méthode Object.protype.toString

<🎜. >
Object.prototype.toString.apply({}) // "[object Object]"
Object.prototype.toString.apply([]) // "[object Array]"
Object.prototype.toString.apply(NaN)// "[object Number]"
Object.prototype.toString.apply(function(){}) // "[object Function]"
Copier après la connexion

En utilisant cette méthode, nous pouvons déterminer correctement le type de base d'une variable, mais s'il s'agit d'un type personnalisé, nous ne pouvons pas connaître le type réel, car le résultat sera toujours [object Object]

Autres

jQuery a également une méthode de jugement de type


$.isWindow(window) // true
Copier après la connexion

Comment faire

core.js#479
isWindow: function( obj ) {
  return obj != null && obj == obj.window;
}
Copier après la connexion

Alors ouvrez un objet comme ceci :

var fakeWindow;
fakeWindow = {};
fakeWindow.window = fakeWindow;
$.isWindow(fakeWindow) // true
Copier après la connexion

et vous l'aurez trompé.

Résumé

Il est vraiment difficile de juger correctement le type en JavaScript. Lorsque vous l'étudiez attentivement, il est très important de concevoir votre jugement en fonction de différentes situations. Nous devons également réfléchir à la manière de déterminer le. tapez correctement de la manière la plus concise. Bien sûr, il existe de nombreux endroits qui ne sont pas présentés dans cet article, comme la méthode isPrototypeOf. JavaScript est un langage avec beaucoup de bagage historique, mais il s'améliore également constamment lors de son utilisation. , veuillez noter qu'il existe trop de méthodes recto-verso, alors n'oubliez pas de les utiliser avec précaution.


Pour plus d'articles connexes résumant les méthodes de détermination des types de données en JavaScript, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!