Heim  >  Artikel  >  Web-Frontend  >  Eine ausführliche Erklärung des Unterschieds zwischen „typeof' und „instanceof' in JS

Eine ausführliche Erklärung des Unterschieds zwischen „typeof' und „instanceof' in JS

亚连
亚连Original
2018-05-19 15:15:511381Durchsuche

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)

Der Unterschied zwischen gewöhnlichen Funktionen und Konstruktoren in Javascript (detaillierte Erklärung kombiniert mit 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!

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