Heim >Web-Frontend >js-Tutorial >Detaillierte Erklärung von Typ und Typbeurteilung in Javascript
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 Typeof-Operator „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, daher besteht ein häufiges Bedürfnis in unserer täglichen Entwicklung darin, zu bestimmen, ob eine Variable eine ist Array oder ein Objekt.
Typbeurteilung
Typbeurteilung dient im Allgemeinen dazu, zu bestimmen, 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 eins:
toString.call(a); // "[object Array]" Methode zwei:
eine Instanz von Array; true-Methode Drei:
a.constructor == Array; //true Die erste Methode ist allgemeiner und die Abkürzung für Object.prototype.toString.call(a).
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. Array == object.constructor gibt „false“ zurück >Ja Variable: 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); //trueMethode 1: JSON.stringify(obj); // „{}“ wird in ein JSON-Objekt konvertiert, um festzustellen, ob es ein ist leere geschweifte Klammer Methode 2: if(obj.id){ //Wenn die Attribut-ID existiert...} Diese Methode ist relativ einfach und die meisten Leute können sich das vorstellen ist, dass Sie wissen müssen, dass es ein bestimmtes Attribut gibt. Methode 3:
Diese Methode ist die Implementierung der isEmptyObject()-Methode von jQuery.
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
Detaillierte Beispiele für die vergleichende Verwendung von „typeof“ und „instanceof“ in JavaScript
Zusammenfassung der Verwendung von typeof in js
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung von Typ und Typbeurteilung in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!