Heim > Web-Frontend > js-Tutorial > Hauptteil

Beispielanalyse von Typeof und Typbeurteilung in JavaScript

黄舟
Freigeben: 2017-10-27 09:20:34
Original
1670 Leute haben es durchsucht

typeof

ECMAScript hat 5 primitive Typen, nämlich Undefiniert, Null, Boolean, Zahl und String. Wir alle wissen, dass wir typeofoperator verwenden können, um den Typ einer Variable zu finden, aber für Referenztypvariablen wird nur <code><a href="//m.sbmmt.com/wiki/60.html" target="_blank">object</a>object

Das heißt, typeof kann nur grundlegende Typwertvariablen korrekt identifizieren.
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"
Nach dem Login kopieren

Sie fragen sich vielleicht, warum der Typeof-Operator „Objekt“ für Nullwerte zurückgibt. Dies war tatsächlich ein Fehler in der ursprünglichen Implementierung von JavaScript, die dann von ECMAScript übernommen wurde. Nun gilt null als Platzhalter für das Objekt

, was den Widerspruch erklärt, aber technisch gesehen ist es immer noch ein primitiver Wert.

xDas letzte ist seltsam, der Typ einer nicht existierenden Variablen

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"
Nach dem Login kopieren

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

var a = [1,2,3,4,5];Es gibt ein Array:

Methode 1:
toString.call(a); // "[object Array]"
Nach dem Login kopieren

Methode zwei:
a instanceof Array; //true
Nach dem Login kopieren

Methode drei:
a.constructor == Array; //true
Nach dem Login kopieren

Object.prototype.toString.call(a)Die erste Methode ist allgemeiner, die Abkürzung für

. Die nach

instanceofconstructor und beurteilten Variablen müssen auf der aktuellen Seite deklariert werden. Beispielsweise hat eine Seite (übergeordnete Seite) einen FrameArray == object.constructor und der Frame verweist auf eine Seite (untergeordnete Seite), deklarieren Sie ein a auf der untergeordneten Seite und weisen Sie es einer Variablen der übergeordneten Seite zu. Wenn die Variable zu diesem Zeitpunkt beurteilt wird, wird false<🎜 zurückgegeben >

beurteilt, ob das leere Objekt
var a = [1,2,3,4,5];
console.log(toString.call(a)); // "[object Array]"                     
console.log(a instanceof Array); //trueconsole.log(a.constructor == Array); //true
Nach dem Login kopieren

Variablen hat:

var obj = {};Methode 1:

bestimmt, ob es sich um eine leere geschweifte Klammer handelt
JSON.stringify(obj); // "{}"
Nach dem Login kopieren

durch Konvertieren in ein JSON-Objekt Methode 2:

Diese Methode ist relativ einfach und die meisten Leute können sich das vorstellen. Die Voraussetzung ist, dass es ein bestimmtes Attribut im gibt Objekt.
if(obj.id){ //如果属性id存在....}
Nach dem Login kopieren

Methode 3:

Diese Methode ist die Implementierung der isEmptyObject()-Methode von jQuery.
function isEmptyObject(e) { var t; for (t in e) return !1; return !0 } //trueisEmptyObject(obj); //falseisEmptyObject({ "a":1, "b":2});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBeispielanalyse von Typeof und Typbeurteilung in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!