Maison > Article > interface Web > Résumé des méthodes pour déterminer le type de données en JavaScript
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"
La solution est qu'on écrive comme suit :
if(typeof haorooms!=undefined){ }
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类型
Évidemment, pour typeof, en plus des quatre premiers types, null, object et array renvoient tous les types d'objet
instanceofVous pouvez l'utiliser pour déterminer s'il s'agit d'un tableau.
var haorooms=[]; console.log(haorooms instanceof Array) //返回trueconstructeur
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;}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]"
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
Comment faire
core.js#479 isWindow: function( obj ) { return obj != null && obj == obj.window; }
Alors ouvrez un objet comme ceci :
var fakeWindow; fakeWindow = {}; fakeWindow.window = fakeWindow; $.isWindow(fakeWindow) // true
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 !