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.5
angezeigt 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]. "