Heim  >  Artikel  >  Web-Frontend  >  Beispielanalyse von Typeof und Typbeurteilung in JavaScript

Beispielanalyse von Typeof und Typbeurteilung in JavaScript

黄舟
黄舟Original
2017-10-27 09:20:341625Durchsuche

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="http://www.php.cn/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"

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"

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]"

Methode zwei:
a instanceof Array; //true

Methode drei:
a.constructor == Array; //true

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

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

Variablen hat:

var obj = {};Methode 1:

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

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存在....}

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});

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!

Stellungnahme:
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