Heim  >  Artikel  >  Web-Frontend  >  Typ und Typurteil in JS (mit Code)

Typ und Typurteil in JS (mit Code)

php中世界最好的语言
php中世界最好的语言Original
2018-04-16 14:32:441625Durchsuche

Dieses Mal werde ich Ihnen Typof und Typbeurteilung in JS vorstellen (mit Code). Hier sind praktische Fälle . .

Art von ECMAScript verfügt über 5 primitive Typen, nämlich Undefiniert, Null, Boolean, Zahl und Zeichenfolge. Wir alle wissen, dass wir typeof

operator

verwenden können, um den Typ einer Variablen zu finden, aber wenn wir auf eine Variable vom Typ verweisen, wird nur object zurückgegeben, was bedeutet, dass typeof kann nur grundlegende Typwertvariablen korrekt identifizieren.

Sie fragen sich vielleicht, warum der Operator „typeof“ „object“ für Nullwerte zurückgibt. Dies war tatsächlich ein Fehler in der ursprünglichen Implementierung von
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"
JavaScript

, die dann von ECMAScript übernommen wurde. Nun, null wird als Platzhalter für das 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 zu folgendem Code:

„Objekt“ wird sowohl für Arrays als auch für Objekte zurückgegeben. Daher besteht ein häufiges Bedürfnis in unserer täglichen Entwicklung darin, festzustellen, ob eine Variable ein Array oder ein Objekt ist.
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"

Typurteil Typbeurteilung bedeutet im Allgemeinen, zu beurteilen, ob es sich um ein Array oder ein leeres Objekt handelt. Dies ist die Beurteilungsmethode, die ich für diese Anforderung jeden Tag verwendet oder gesehen habe

Bestimmen 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 zwei:

eine Instanz von Array; //wahre Methode drei:

a.constructor == Array; //true Die erste Methode ist allgemeiner, nämlich die Abkürzung Object.prototype.toString.call(a).

Die von Instanz und Konstruktor beurteilten Variablen müssen auf der aktuellen Seite deklariert werden. Beispielsweise hat eine Seite (übergeordnete Seite) einen Frame, und auf der untergeordneten Seite wird ein a deklariert Weisen Sie der übergeordneten Seite einen Wert zu und beurteilen Sie dann die Variable Array == object.constructor gibt false zurück

Bestimmen Sie, ob es sich um ein leeres Objekt handelt
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

Es gibt Variablen: var obj = {};

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

attribute

id existiert....} Diese Methode ist relativ einfach und die meisten Leute können sich vorstellen, dass das Objekt ein bestimmtes Attribut enthält .

Methode drei:

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

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:



Das obige ist der detaillierte Inhalt vonTyp und Typurteil in JS (mit Code). 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