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
instanceof< zurück 🎜>Damit können Sie feststellen, ob es sich um ein Array handelt.
var haorooms=[]; console.log(haorooms instanceof Array) //返回true
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;}
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]"
Andere
jQuery verfügt auch über eine Typbeurteilungsmethode
$.isWindow(window) // true
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) // true
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.