Vorwort: Bei der täglichen Entwicklung stoßen wir häufig auf Situationen, in denen wir den Datentyp einer Variablen bestimmen müssen oder ob die Variable null ist. Wie wählen Sie den Operator aus, um den Typ zu bestimmen? Dieser Artikel fasst die Wissenspunkte zu 1. Typ des Operators (1) Der Rückgabewert ist vom Typ String, wobei:
(2) Gemeinsame Verwendungsmethoden console.log(Typ von nicht definiert); //'nicht definiert' console.log(Typ von true);//'bpplean' console.log(typeof ("Nummer")); //'Zeichenfolge' console.log(Typ von "Zahl"); //'Zeichenfolge' console.log(Typ von 1);//'Nummer' console.log(Typ von Symbol());//'Symbol' //Für spezielle Objekte wie Array und Null gibt typeof immer ein Objekt zurück, was die Einschränkung von typeof darstellt console.log(typeof null); //'Objekt' console.log(Typ von [1, 2, 3]);//'Objekt' console.log(Typ von nicht definiert); //'nicht definiert' //Verwenden Sie den typeof-Operator, um Funktionen von anderen Objekten zu unterscheiden function f1() { console.log(111); } console.log(Typ von f1); //'Funktion' console.log(Typ von f1()); // 111 'undefiniert' (3) Sie können typeof nicht verwenden, um zu bestimmen, ob eine Variable existiert var a; wenn (a === undefiniert) { console.log("Variable existiert nicht") } anders { console.log("Variable existiert") } // Die Variable existiert nicht 2. Instanz des Operators Während Funktion f1() { console.log(111); console.log(f1 Instanz von Objekt);//true console.log(f1 Instanz der Funktion);//true console.log(f1 Instanz von RegExp); //false Alle Referenzwerte sind Instanzen von
Funktion meineInstanzvon(links, rechts) { let proto = Object.getPrototypeOf(left), // Den Prototyp des Objekts abrufen prototype = right.prototype; // Das Prototypobjekt der Konstruktorfunktion abrufen // Bestimmen, ob sich das Prototypobjekt der Konstruktorfunktion in der Prototypkette des Objekts befindet while (true) { wenn (!proto) false zurückgibt; wenn (proto === Prototyp) true zurückgibt; proto = Objekt.getPrototypeOf(proto); } } 3. Der Unterschied zwischen typeof und instanceof und Vorschläge zur Verwendung in der Entwicklung Sowohl
Es ist ersichtlich, dass die beiden oben genannten Methoden Nachteile haben und nicht die Anforderungen aller Szenarien erfüllen können. Wenn Sie Datentypen im Allgemeinen erkennen müssen, empfiehlt es sich, console.log(Object.prototype.toString.call(undefined)) //"[Objekt undefiniert]" console.log(Object.prototype.toString.call(true)) // "[Objekt Boolean]" console.log(Object.prototype.toString.call('1')) // "[Objekt String]" console.log(Object.prototype.toString.call(1)) // "[Objektnummer]" console.log(Object.prototype.toString.call(Symbol())) // "[Objekt Symbol]" console.log(Object.prototype.toString.call({})) // "[Objekt Objekt]" console.log(Object.prototype.toString.call(function () { })) // "[Objektfunktion]" console.log(Object.prototype.toString.call([])) //"[Objekt-Array]" console.log(Object.prototype.toString.call(null)) //"[Objekt Null]" console.log(Object.prototype.toString.call(/123/g)) //"[Objekt RegExp]" console.log(Objekt.prototype.toString.call(neues Datum())) //"[Objekt Datum]" Zusammenfassen: Dies ist das Ende dieses Artikels über den Unterschied zwischen Das könnte Sie auch interessieren:
|
>>: Lösung zum Importieren weiterer Daten aus MySQL in Hive
In diesem Artikelbeispiel wird der spezifische Co...
B-Baum ist eine allgemeine Datenstruktur. Daneben...
Das Dokument ist schon seit einiger Zeit geschrie...
Kürzlich wurde beim Ausführen eines alten RN-Proj...
Das Internet ist bereits voll von Artikeln dieser...
Problemhintergrund: Es ist erforderlich, einen Sc...
0x0 Testumgebung Der Produktionsserver der Zentra...
Füge im CSS-Style des Elements, welches die Hinte...
Das Uniapp-Applet wird ein ähnliches Dropdown-Pro...
In diesem Artikelbeispiel wird der spezifische Ja...
Lasst uns gemeinsam lernen 1. Traditionelle Metho...
Häufig verwendeter JavaScript-Code zum Erkennen d...
Inhaltsverzeichnis iview-admin2.0 integrierte Ber...
Wenn Dateien von einem Prozess verwendet und vers...
Inhaltsverzeichnis Modusparameter HashHistorie Ha...