Heim > Artikel > Web-Frontend > Eine kurze Diskussion über die Techniken „instanceof“ und „typeof_javascript“ in Javascript
Instanceof und typeof habe ich schon früher verwendet, insbesondere typeof, das relativ häufig verwendet wird. Als ich heute den ext-Quellcode studierte, hatte ich plötzlich das Gefühl, dass sie einigermaßen ähnlich sind. Aber sie sollten auch Unterschiede enthalten. Ich habe einige Artikel online gelesen und habe ein gewisses Verständnis für den Zusammenhang zwischen ihnen.
Instanceof und typeof können beide verwendet werden, um zu bestimmen, ob eine Variable leer ist oder um welchen Variablentyp es sich handelt.
Typeof wird verwendet, um den Typ einer Variablen zu ermitteln. Im Allgemeinen kann Typeof nur die folgenden Ergebnisse zurückgeben: Zahl, Boolescher Wert, Zeichenfolge, Funktion, Objekt, undefiniert. Wir können typeof verwenden, um zu ermitteln, ob eine Variable vorhanden ist, z. B. if(typeof a!="undefiniert"){}, anstatt if(a) zu verwenden, da ein Fehler auftritt, wenn a nicht vorhanden (nicht deklariert) ist , Null Bei Verwendung von typeof für spezielle Objekte wird immer das Objekt zurückgegeben. Dies ist die Einschränkung von typeof.
Wenn wir herausfinden möchten, ob ein Objekt ein Array ist, oder bestimmen möchten, ob eine Variable eine Instanz eines Objekts ist, müssen wir „instanceof“ verwenden. Mit „instanceof“ wird ermittelt, ob es sich bei einer Variablen um eine Instanz eines Objekts handelt liegt daran, dass Array eine Unterklasse des Objekts ist. Ein weiteres Beispiel: function test(){};var a=new test();alert(a instanceof test) gibt true zurück.
Wenn es um „Instanz von“ geht, müssen wir ein weiteres Problem einfügen, nämlich die Argumente der Funktion. Wir denken vielleicht alle, dass Argumente ein Array sind, aber wenn Sie „Instanz von“ zum Testen verwenden, werden Sie feststellen, dass Argumente kein Array sind Array-Objekt, auch wenn es ähnlich aussieht.