Ein Artikel zum Verständnis der Verwendung von typeof in js

Ein Artikel zum Verständnis der Verwendung von typeof in js

Base

Der TypeOf-Operator ist ein grundlegender Wissenspunkt in JavaScript. Obwohl er bestimmte Einschränkungen aufweist (siehe unten), ist er im tatsächlichen Codierungsprozess von Front-End-JS immer noch die am häufigsten verwendete Methode zur Typbeurteilung.

Daher ist die Beherrschung der Eigenschaften dieses Operators beim Schreiben guten Codes eine große Hilfe.

typeof gibt eine Zeichenfolge zurück, die den Datentyp des Operationswerts angibt. Die grundlegende Syntax lautet:

Typ des Operanden
Typ von (Operand)

Mögliche Zeichenfolgen vom Rückgabetyp sind: Zeichenfolge, Boolescher Wert, Zahl, Bigint, Symbol, undefiniert, Funktion, Objekt.

Rückgabetyp

Die folgende Klassifizierungseinführung erfolgt entsprechend der möglichen Rückgabetypen und deckt alle Verwendungen von typeof ab.

String und Boolean

Zeichenfolgen- und Boolesche Werte geben jeweils Zeichenfolge und Boolesche Werte zurück.

Einschließlich String() und Boolean().

Typ von '1' // 'Zeichenfolge'
Typ von String(1) // 'Zeichenfolge'
Typ von true // 'Boolesch'
Typ von Boolean() // 'Boolesch'

Zahl und Bigint

Die zurückgegebenen Zahlen sind Number(), NaN und Infinity sowie die Werte verschiedener mathematischer Konstanten unter dem Math-Objekt.

Werte des numerischen Typs BigInt werden als Bigint zurückgegeben, einschließlich BigInt(1).

Typ von 1 // 'Zahl'
Typ von NaN // 'Zahl'
Typ von Math.PI // 'Zahl'
Typ von 42n // 'bigint'
Typ von BigInt(1) // 'bigint'

Symbol

Der Symbolwert gibt das Symbol zurück, einschließlich Symbol().

Typ von Symbol () // 'Symbol'
Typ von Symbol ('foo') // 'Symbol'
Typ von Symbol.Iterator // 'Symbol'

undefiniert

undefined selbst gibt undefined zurück.

Variablen, die nicht existieren oder definiert sind, denen aber kein Anfangswert zugewiesen wurde, geben „undefiniert“ zurück.

Es gibt auch nicht standardmäßige Browserfunktionen wie document.all.

Typ von undefiniert // 'undefiniert'
Typ von ttttttt // 'undefiniert'
Typ des Dokuments.alle // 'undefiniert'

Funktion

Funktion gibt Funktion zurück.

Einschließlich der Verwendung der es6-Klassendeklaration.

Es gibt auch integrierte Objekte wie String, Number, BigInt, Boolean, RegExp, Error, Object, Date, Array, Function und Symbol selbst.

Und Funktion(), neue Funktion().

Funktion func () {}
Typ der Funktion // 'Funktion'
Typ der Klasse cs {} // 'Funktion'
Typ von String // 'Funktion'
Typ von RegExp // 'Funktion'
Typ der neuen Funktion () // 'Funktion'

Objekt

Objekt, Array, Null, regulärer Ausdruck, alle geben ein Objekt zurück.

Einschließlich Mathematik, JSON-Objekt selbst.

Es gibt auch Daten, die zusätzlich zur Funktion den neuen Operator verwenden.

Typ von {} // 'Objekt'
Typ von [] // 'Objekt'
Typ von null // 'Objekt'
Typ von /d/ // 'Objekt'
Typ von Math // 'Objekt'
Typ der neuen Zahl (1) // 'Objekt'

andere

Bei den meisten anderen JavaScript-Schlüsselwörtern ist der resultierende Wert entweder ein Objekt oder eine Funktion.

Hinweis: Die meisten Kleinbuchstaben beginnen mit „Objekten“ und die meisten Großbuchstaben mit „Methoden“. Allgemeine Methoden, die eindeutig bekannt sind, wie etwa Alarm, Eingabeaufforderung usw., zählen nicht.

Darüber hinaus gibt es Hostobjekte, die in jeder JS-Umgebung speziell implementiert sind.

Häufig gestellte Fragen

Referenzfehler

Bevor let- und const-Blockbereichsvariablen definiert werden, führt die Verwendung von typeof zu einem ReferenceError.

Denn Variablen auf Blockebene bilden bis zu ihrer Initialisierung eine temporäre tote Zone im Header, andernfalls wird ein Referenzfehler gemeldet.

Typ von t
sei t = 1
// VM327:1 Nicht abgefangener Referenzfehler: t ist nicht definiert
// bei <anonym>:1:1

Wenn Sie var zum Definieren einer Variable verwenden, wird kein Fehler gemeldet und „undefined“ zurückgegeben.

Es gibt Variablen, die verbessert werden müssen, und es wird keine vorübergehende tote Zone entstehen.

Typ von null

Denken Sie für typeof null === 'object' einfach an die möglichen Erklärungen:

In der ursprünglichen Implementierung von JavaScript wurden Werte in JavaScript durch ein Tag dargestellt, das den Typ und den tatsächlichen Datenwert angab. Der Typ-Tag eines Objekts ist 0. Verlassen Sie sich auf

Da null einen Nullzeiger darstellt (0x00 auf den meisten Plattformen), ist der Typtag von null 0 und typeof null gibt daher „Objekt“ zurück.

Einschränkungen von typeof

Die Einschränkung von typeof besteht darin, dass es die Typen Null, Arrays, Objekte und reguläre Ausdrücke nicht genau bestimmen kann.

Wenn Sie daher ein genaues Urteil fällen möchten, müssen Sie andere technische Mittel oder kombinierte Urteile verwenden.

Bestimmen Sie den Array-Typ wie folgt:

Object.prototype.toString.call([]) // '[Objekt-Array]'

[] Instanz von Array // wahr

[].constructor === Array // wahr

Unter diesen ist Object.prototype.toString.call eine in JavaScript verwendete gängige Methode zur genauen Bestimmung von Datentypen.

Erweiterung: BigInt-Typ

BigInt ist ein neuer Basistyp, der von ES11 hinzugefügt wurde und ganze Zahlen mit beliebiger Genauigkeit darstellen kann.

Es bietet eine Methode zur Darstellung von Ganzzahlen, die größer als 2^53 - 1 sind, und kann beliebig große Ganzzahlen darstellen.

Es wird erstellt, indem n an das Ende einer Ganzzahl angehängt wird oder indem der Konstruktor BigInt() aufgerufen wird.

IE wird nicht unterstützt.

10n
BigInt(99) // 99n

Notiz:

  • BigInt kann die Operatoren +, *, -, ** und % verwenden.
  • Es werden auch andere bitweise Operationen als >>> (vorzeichenlose Rechtsverschiebung) unterstützt. Weil BigInt immer signiert ist.
  • BigInt unterstützt den unären (+) Operator nicht und meldet einen Typfehler.
  • Sie können keine Methoden im Math-Objekt auf BigInt verwenden.
  • BigInt kann in Berechnungen nicht mit Number gemischt werden, da sonst ein TypeError ausgelöst wird.
  • Bei der Konvertierung eines BigInt in einen Boolean-Wert verhält es sich wie eine Zahl.
  • Bei der Konvertierung einer BigInt-Variable in eine Number-Variable kann es zu einer Genauigkeitsminderung kommen.
  • Der Typeof-Vorgang gibt Bigint zurück.
  • Bei Verwendung integrierter Objekte wie „Object“ und „String“ zur Konvertierung ähnelt es „Number“.
  • Bei Verwendung der /-Divisionsoperation mit BigInt werden die Dezimalstellen gerundet.
  • Number und BigInt können auf nicht strikte Gleichheit verglichen werden.
  • JSON.stringify wirft beim Verarbeiten von BigInt einen TypeError aus.

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung von typeof in js. Weitere relevante Inhalte zur Verwendung von typeof in js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Zusammenfassung der Verwendung von typeof in js
  • Verwendung von Javascript typeof und Einführung des typeof-Operators [detailliert]
  • Zusammenfassung der Verwendung der typeof-Funktion zur Bestimmung des Variablentyps in js
  • Zusammenfassung der Typeof-Verwendung in Javascript
  • js bestimmt, ob es leer ist und die Verwendung von typeof (ausführliche Erklärung)
  • Javascript-Verwendungsart
  • Detaillierte Erklärung der Verwendung von typeof und instanceof in JavaScript
  • Detaillierte Analyse der Verwendung und Unterschiede der Operatoren „Instanceof“ und „Typeof“ in JavaScript
  • Beispiel für die Verwendung des Operators typeof in JavaScript

<<:  Apache Calcite-Code zur Dialektkonvertierung

>>:  Benutzer müssen wissen, warum

Artikel empfehlen

Sublime/vscode – schnelle Implementierung zur Generierung von HTML-Code

Inhaltsverzeichnis Grundlegende HTML-Struktur Gen...

Das Laufschriftelement implementiert Effekte wie scrollende Schriften und Bilder

Mit dem Laufschriftelement können Sie einfache Gle...

Eine kurze Diskussion über den VUE Uni-App-Lebenszyklus

Inhaltsverzeichnis 1. Anwendungslebenszyklus 2. S...

Detaillierte Erklärung zum MySQL-Datenarchivierungstool mysql_archiver

Inhaltsverzeichnis I. Überblick 2. pt-archiver Ha...

Tipps zum Schreiben prägnanter React-Komponenten

Inhaltsverzeichnis Vermeiden Sie die Verwendung d...

Flex-Layout ermöglicht adaptive Seiten (Syntax und Beispiele)

Einführung in Flex Layout Flex bedeutet auf Engli...

Ubuntu-Grundeinstellungen: Installation und Nutzung des OpenSSH-Servers

Protokollieren Sie die Installation und Verwendun...

JS erzielt Fünf-Sterne-Lobeffekt

Verwenden Sie JS, um objektorientierte Methoden z...

Zusammenfassung der Anwendung von Übergangskomponenten in Vue-Projekten

​Transtion in Vue ist eine Kapselungskomponente f...

Zusammenfassung der MySQL-Nutzungsspezifikationen

1. Es muss die InnoDB-Speicher-Engine verwendet w...

Detaillierte Erklärung des DOM DIFF-Algorithmus in der React-Anwendung

Inhaltsverzeichnis Vorwort Was ist VirtualDOM? Gr...