Heim >Web-Frontend >js-Tutorial >Zusammenfassung der Methoden zur Bestimmung des Datentyps in JavaScript
typeof
Typeof wird häufig verwendet, um festzustellen, ob eine globale Variable vorhanden ist. Wenn Sie folgendes Urteil fällen:
//haorooms是全局变量 if(haorooms!=undefined){ }//js会报错,说"Uncaught ReferenceError: haorooms is not defined"
Die Lösung ist, dass wir wie folgt schreiben:
if(typeof haorooms!=undefined){ }
Nach der Verwendung von typeof werden keine Fehler gemeldet! Dies ist eine der Anwendungen von typeof!
Darüber hinaus kann typeof auch den Datentyp bestimmen! Wie folgt:
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类型
Natürlich geben für typeof zusätzlich zu den ersten vier Typen null, object und array alle Objekttypen
instanceofDamit können Sie feststellen, ob es sich um ein Array handelt.
var haorooms=[]; console.log(haorooms instanceof Array) //返回trueKonstruktor
Konstruktor ist der Konstruktor, der dem zurückgegebenen Objekt entspricht.
Methoden zur Bestimmung verschiedener Datentypen:
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;}Durch die Ausgabe von haorooms.constructor können Sie sehen, dass es sich bei dem Konstruktor um den Konstruktor handelt, der dem zurückgegebenen Objekt entspricht. Object.prototype.toString
Wir haben bereits erwähnt, dass wir das Konstruktorattribut verwenden können, um den Objekttyp zu bestimmen.
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]"Mit dieser Methode können wir den Grundtyp einer Variablen korrekt bestimmen. Wenn es sich jedoch um einen benutzerdefinierten Typ handelt, können wir den tatsächlichen Typ nicht kennen, da das Ergebnis immer noch [Objekt Objekt] ist
Andere
jQuery verfügt auch über eine Typbeurteilungsmethode
$.isWindow(window) // trueWie es geht
core.js#479 isWindow: function( obj ) { return obj != null && obj == obj.window; }
Öffnen Sie also ein Objekt wie dieses:
var fakeWindow; fakeWindow = {}; fakeWindow.window = fakeWindow; $.isWindow(fakeWindow) // trueund Sie werden ihn getäuscht haben. Zusammenfassung
Es ist wirklich schwierig, den Typ in JavaScript richtig zu beurteilen. Wenn Sie ihn sorgfältig studieren, ist es sehr wichtig, Ihr Urteil entsprechend den verschiedenen Situationen zu gestalten Natürlich gibt es viele Stellen, die in diesem Artikel nicht vorgestellt werden, wie zum Beispiel die isPrototypeOf-Methode, die jedoch auch ständig verbessert wird Bitte beachten Sie, dass es zu viele Methoden gibt, bei denen es sich um doppelseitige Klingen handelt. Denken Sie also daran, diese mit Vorsicht zu verwenden.