Konvertieren von Datentypen in JavaScript

Einführung

In JavaScript werdendata types verwendet, um einen bestimmten Datentyp zu klassifizieren und die Werte zu bestimmen, die Sie dem Typ zuweisen können, sowie die Operationen, die Sie daran ausführen können.

Obwohl JavaScript aufgrund vontype coercion automatisch viele Werte konvertiert, wird häufig empfohlen, Werte manuell zwischen Typen zu konvertieren, um die erwarteten Ergebnisse zu erzielen.

Dieses Tutorial führt Sie durch die Konvertierung der primitiven Datentypen von JavaScript, einschließlich Zahlen, Zeichenfolgen und Booleschen Werten.

Implizite Konvertierung

JavaScript ist als Programmiersprache sehr tolerant gegenüber unerwarteten Werten. Aus diesem Grund versucht JavaScript, unerwartete Werte zu konvertieren, anstatt sie sofort abzulehnen. Diese implizite Umwandlung wird als Typenzwang bezeichnet.

Einige Methoden konvertieren automatisch Werte, um sie zu verwenden. alert() method verwendet eine Zeichenfolge als Parameter, konvertiert jedoch automatisch andere Typen in Zeichenfolgen. So können wir der Methode einen Zahlenwert übergeben:

alert(8.5);

Wenn wir die obige Zeile ausführen, gibt der Browser ein Popup-Warnungsdialogfeld zurück, in dem der Wert von8.5angezeigt wird, außer dass er zu diesem Zweck in eine Zeichenfolge konvertiert wurde.

Wenn Sie Zeichenfolgen verwenden, die mitmathematical operators in Zahlen ausgewertet werden können, werden Sie feststellen, dass JavaScript die Werte verarbeiten kann, indem die Zeichenfolgen implizit in Zahlen konvertiert werden, wie in den folgenden Beispielen gezeigt.

// Subtraction
"15" - "10";
Output5
// Modulo
"15" % "10";
Output5

Es wird jedoch nicht jeder Bediener wie erwartet arbeiten. Der Operator+ ist besonders problematisch, da er entweder Addition oderstring concatenation bedeuten kann.

// When working with strings, + stands for concatenation
"2" + "3";
Output"23"

Da der Operator+ vielseitig einsetzbar ist, werden die Zeichenfolgenwerte von2 und3, obwohl sie numerische Zeichenfolgen sind, mit dem Zeichenfolgenwert von23 verknüpft und nicht addiert die Zahl5 sein.

Da Mehrdeutigkeiten auftreten und manchmal zu unerwarteten Ergebnissen führen können, ist es häufig am besten, die Datentypen in Ihrem Code so weit wie möglich explizit zu konvertieren. Dies hilft beim Verwalten von Eingaben von Benutzern und beim Behandeln von Fehlern.

Konvertieren von Werten in Zeichenfolgen

Werte können explizit in Zeichenfolgen konvertiert werden, indem entwederString() odern.toString() aufgerufen werden.

Mit der FunktionString() konvertieren wir einBoolean value in einen String, indem wir den Werttrue an die Parameter fürString() übergeben.

String(true);

Wenn wir dies tun, wird das String-Literal"true" zurückgegeben.

Output"true"

Alternativ können wir der Funktion eine Zahl übergeben.

String(49);

Ein String-Literal dieser Nummer wird zurückgegeben.

Output"49"

Verwenden wir die FunktionString() mit einer Variablen. Wir weisen der Variablenodyssey einen Zahlenwert zu und verwenden dann den Operatortypeof, um den Typ zu überprüfen.

let odyssey = 2001;
console.log(typeof odyssey);
Outputnumber

Zu diesem Zeitpunkt wird der Variablenodyssey der numerische Wert von2001 zugewiesen, den wir als Zahl bestätigt haben.

Weisen Sie nunodyssey dem Zeichenfolgenäquivalent zu und bestätigen Sie mittypeof, dass der Wert der Variablen erfolgreich von einer Zahl in eine Zeichenfolge konvertiert wurde.

odyssey = String(odyssey);  // "2001"
console.log(typeof odyssey);
Outputstring

Im obigen Beispiel haben wir bestätigt, dassodyssey nach der Datentypkonvertierung neu zugewiesen wurde, um einem Zeichenfolgenwert zu entsprechen.

Wir könnenn.toString() auf ähnliche Weise verwenden. Wir könnenn durch eine Variable ersetzen:

let blows = 400;
blows.toString();

Die Variableblows wird als Zeichenfolge zurückgegeben.

Output"400"

Alternativ können wir einen Wert in Klammern anstatt einer Variablen mitn.toString() setzen:

(1776).toString();          // returns "1776"
(false).toString();         // returns "false"
(100 + 200).toString();     // returns "300"

Durch die Verwendung vonString() odern.toString() können wir Werte von Boolean odernumber data types explizit in Zeichenfolgenwerte konvertieren, um sicherzustellen, dass sich unser Code wie erwartet verhält.

Werte in Zahlen umrechnen

Bei der Konvertierung von Werten in einen Zahlendatentyp verwenden wir die Methode "Number ()". In erster Linie konvertieren wir Zeichenfolgen aus numerischem Text in Zahlen, aber wir können auch Boolesche Werte konvertieren.

Wir können eine Zeichenfolge einer Zahl an die MethodeNumber()übergeben:

Number("1984");

Die Zeichenfolge wird in eine Zahl umgewandelt und nicht mehr in Anführungszeichen eingeschlossen.

Output1984

Wir können einer Variablen auch einen String zuweisen und diesen dann konvertieren.

let dalmatians = "101";
Number(dalmatians);
Output101

Das String-Literal"101" wurde über seine Variable in die Zahl101 konvertiert.

Zeichenfolgen aus Leerzeichen oder leeren Zeichenfolgen werden in0 konvertiert.

Number(" ");    // returns 0
Number("");     // returns 0

Beachten Sie, dass Zeichenfolgen von Nicht-Zahlen inNaN konvertiert werden, was fürNotaNumber steht. Dies schließt durch Leerzeichen getrennte Zahlen ein.

Number("twelve");   // returns NaN
Number("20,000");   // returns NaN
Number("2 3");      // returns NaN
Number("11-11-11"); // returns NaN

Bei booleschen Datentypen werdenfalse zu0 undtrue zu1 ausgewertet.

Number(false);      // returns 0
Number(true);       // returns 1

Die MethodeNumber() konvertiert Datentypen, die keine Zahlen sind, in Zahlen.

Werte in Boolesche Werte konvertieren

Um Zahlen oder Zeichenfolgen in Boolesche Werte umzuwandeln, wird die MethodeBoolean()verwendet. Dies kann beispielsweise hilfreich sein, um festzustellen, ob ein Benutzer Daten in ein Textfeld eingegeben hat oder nicht.

Jeder Wert, der als leer interpretiert wird, wie die Zahl0, eine leere Zeichenfolge oder undefinierte Werte oderNaN odernull, werden infalse konvertiert.

Boolean(0);         // returns false
Boolean("");        // returns false
Boolean(undefined); // returns false
Boolean(NaN);       // returns false
Boolean(null);      // returns false

Andere Werte werden intrue konvertiert, einschließlich Zeichenfolgenliteralen, die aus Leerzeichen bestehen.

Boolean(2000);      // returns true
Boolean(" ");       // returns true
Boolean("Maniacs"); // returns true

Beachten Sie, dass"0" als Zeichenfolgenliteral intrue konvertiert wird, da es sich um einen nicht leeren Zeichenfolgenwert handelt:

Boolean("0");   // returns true

Durch die Konvertierung von Zahlen und Zeichenfolgen in Boolesche Werte können Daten in binären Begriffen ausgewertet und für den Steuerungsfluss in unseren Programmen genutzt werden.

Fazit

In diesem Tutorial wurde erläutert, wie JavaScript die Konvertierung seiner primitiven Datentypen handhabt. Obwohl Datentypen aufgrund von Typenzwang in vielen Fällen implizit konvertiert werden, ist es eine gute Angewohnheit, Datentypen explizit zu konvertieren, um sicherzustellen, dass Programme wie erwartet funktionieren.

Weitere Informationen zu den Datentypen von JavaScript finden Sie unter "https://www.digitalocean.com/community/tutorials/understanding-data-types-in-javascript[Datentypen in JavaScript verstehen". Hier erfahren Sie, wie die Datentypkonvertierung durchgeführt wird Informationen zu anderen Programmiersprachen finden Sie unter „https://www.digitalocean.com/community/tutorials/how-to-convert-data-types-in-python-3[How To Convert Data Types in Python 3]. "