Heim > Artikel > Web-Frontend > Eine ausführliche Erklärung des Unterschieds zwischen „typeof' und „instanceof' in JS
In JavaScript werden „typeof“ und „instanceof“ häufig verwendet, um zu bestimmen, ob eine Variable leer ist oder welchen Typ sie hat. Aber es gibt immer noch Unterschiede zwischen ihnen. Freunde in Not können sich auf
beziehen. Typeof und Instanzof werden in JavaScript häufig verwendet, um festzustellen, ob eine Variable leer ist oder welchen Typ sie hat. Es gibt jedoch immer noch Unterschiede zwischen ihnen:
typeof
typeof ist eine unäre Operation, die vor einem Operanden platziert wird. Operanden können sein jeglicher Art.
Es wird eine Zeichenfolge zurückgegeben, die den Typ des Operanden beschreibt. typeof kann im Allgemeinen nur die folgenden Ergebnisse zurückgeben:
Zahl, Boolescher Wert, Zeichenfolge, Funktion, Objekt, undefiniert. Wir können typeof verwenden, um zu ermitteln, ob eine Variable existiert, z. B. if(typeof a!="undefiniert"){alert("ok")}, anstatt if(a) zu verwenden, denn wenn a nicht existiert (nicht deklariert), wird es Wenn ein Fehler auftritt, wird bei Verwendung von typeof für spezielle Objekte wie Array und Null immer ein Objekt zurückgegeben. Dies ist die Einschränkung von typeof.
Instanz von
Instanz: Instanz, Beispiel
eine Instanz von b?alert("true"):alert(" false"); //a ist eine Instanz von b? True: False
instanceof wird verwendet, um zu bestimmen, ob eine Variable eine Instanz eines Objekts ist, z. B. var a=new Array();alert(a instanceof Array); (eine Instanz von Object) gibt ebenfalls true zurück; dies liegt daran, dass Array eine Unterklasse von object ist. Ein weiteres Beispiel: function test(){};var a=new test();alert(a instanceof test) will return
Apropos „Instanz von“, wir müssen noch eine Frage einfügen, nämlich die Argumente der Funktion Wir denken vielleicht alle, dass Argumente ein Array sind, aber wenn Sie zum Testen die Instanz von verwenden, werden Sie feststellen, dass Argumente kein Array-Objekt sind, obwohl es ähnlich aussieht.
Außerdem:
Test var a=new Array();if (eine Instanz eines Objekts) alarm('Y');else alarm('N');
erhält 'Y'
aber wenn (Fensterinstanz des Objekts) alarm('Y');sonst alarm('N');
Get 'N'
Das hier von der Instanz getestete Objekt bezieht sich also auf das Objekt in der JS-Syntax, nicht auf das Dom-Modellobjekt.
Bei der Verwendung von typeof wird es einige Unterschiede geben
alert(typeof(window)) will get object
Das Obige habe ich für alle zusammengestellt Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Erklärung zur Verwendung der einzelnen und vertikalen Balken „|“ und „||“ von js
JS Detaillierte Erklärung des Vollbildmodus und Beenden des Vollbildmodus (einschließlich Code)
Das obige ist der detaillierte Inhalt vonEine ausführliche Erklärung des Unterschieds zwischen „typeof' und „instanceof' in JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!