Dieser Artikel enthält hauptsächlich einen Artikel, der auf Typ und Typbeurteilung in JavaScript basiert (ausführliche Erklärung). Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
typeof
ECMAScript hat 5 primitive Typen, nämlich Undefiniert, Null, Boolean, Zahl und String. Wir alle wissen, dass Sie den Operator „typeof“ verwenden können, um den Typ einer Variablen zu ermitteln. Bei Referenztypvariablen wird jedoch nur ein Objekt zurückgegeben, was bedeutet, dass „typeof“ nur grundlegende Typwertvariablen korrekt identifizieren kann.
var a = "abc"; console.log(typeof a); // "string" var b = 123; console.log(typeof b); // "number" var c = true; console.log(typeof c); // "boolean" var d = null; console.log(typeof d); // "object" var f = undefined; console.log(typeof f); // "undefined" var g; console.log(typeof g); // "undefined" console.log(typeof x); // "undefined"
Sie fragen sich vielleicht, warum der Operator „typeof“ „Objekt“ für Nullwerte zurückgibt. Dabei handelte es sich tatsächlich um einen Fehler in der ursprünglichen JavaScript-Implementierung, der dann von ECMAScript übernommen wurde. Nun wird null als Platzhalter für ein Objekt betrachtet, was den Widerspruch erklärt, aber technisch gesehen ist es immer noch ein primitiver Wert.
Das Letzte ist seltsam: Der Typ einer nicht existierenden Variablen x gibt tatsächlich „Objekt“ statt „undefiniert“ zurück.
Wir kommen zum folgenden Code:
var a = function() { }; console.log(typeof a); // "function" var b = [1,2,3]; console.log(typeof b); // "object" var c = { }; console.log(typeof c); // "object"
Gibt „object“ sowohl für Arrays als auch für Objekte zurück, also ein häufiges Bedürfnis in unserer täglichen Entwicklung So bestimmen Sie, ob die Variable ein Array oder ein Objekt ist.
Typbeurteilung
Bei der Typbeurteilung wird im Allgemeinen beurteilt, ob es sich um ein Array oder ein leeres Objekt handelt. Dies ist die Beurteilungsmethode, die ich täglich für diese Anforderung verwendet oder gesehen habe
Beurteilen Sie, ob es sich um ein Array handelt
Es gibt ein Array: var a = [1,2,3,4,5 ];
Methode 1:
toString.call(a); // "[object Array]"Methode 2:
a instanceof Array; //true Methode drei:
a.constructor == Array; //true Die erste Methode ist allgemeiner, nämlich Object.prototype.toString .call( a) Abkürzung.
Die von der Instanz und dem Konstruktor beurteilten Variablen müssen auf der aktuellen Seite deklariert werden. Beispielsweise hat eine Seite (übergeordnete Seite) einen Frame, der Frame verweist auf eine Seite (untergeordnete Seite) und eine untergeordnete Seite wird deklariert .a und weisen Sie es einer Variablen der übergeordneten Seite zu, um zu beurteilen, ob Array == object.constructor false ist es ist Das leere Objekt
hat Variablen: var obj = {};
var a = [1,2,3,4,5]; console.log(toString.call(a)); // "[object Array]" console.log(a instanceof Array); //true console.log(a.constructor == Array); //true
Methode 1:
JSON.stringify (obj) ; // „{}“ wird in ein JSON-Objekt umgewandelt, um festzustellen, ob es sich um eine leere Klammer handelt Methode 2:
if(obj. id){ //Wenn die Attribut-ID existiert...} Diese Methode ist relativ einfach und die meisten Leute können sich vorstellen, dass das Objekt ein bestimmtes Attribut enthält. Methode 3:
Diese Methode ist die Implementierung der isEmptyObject()-Methode von jQuery Weg.
Verwandte Empfehlungen:
function isEmptyObject(e) { var t; for (t in e) return !1; return !0 } //trueisEmptyObject(obj); //falseisEmptyObject({ "a":1, "b":2});
Einführung in die Verwendung von typeof in JavaScript
Das obige ist der detaillierte Inhalt vonTyp und Typurteil in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!