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
1. Download, ich nehme 8.0 als Beispiel Download-...
Offizielle Website von Prometheus (auch Prometheu...
Inhaltsverzeichnis rc.local-Methode chkconfig-Met...
Inhaltsverzeichnis 1. Übergeordnete Komponenten u...
Wie üblich werde ich heute über einen sehr prakti...
In diesem Artikel wird der spezifische Code von j...
Problembeschreibung: In letzter Zeit besteht die ...
Unsere erfahrenen Vorgänger haben zahllose Codes ...
Bei der Implementierung dieser Funktion konnte di...
Wenn Sie es nicht durch direktes Klicken auf „Dow...
1. Verschachteltes Routing wird auch als Sub-Rout...
Grafisches Tutorial zur Installation und Konfigur...
Vorwort Ich habe bereits einen Artikel über REM-A...
Da die Standardparameter des Linux-Kernels auf de...
In der heutigen Entwicklungsumgebung ist schnell ...