1.1 Explizite Typkonvertierung
Typkonvertierung in JavaScript ist der Prozess, bei dem ein Wert von einem Datentyp in einen anderen umgewandelt wird. Es gibt zwei Arten der Konvertierung: explizit (manuell) und implizit (automatisch). Das Verständnis dieser Prozesse ist wichtig, um Fehler zu vermeiden und vorhersehbaren Code zu erstellen.
Explizite Konvertierung, auch bekannt als manuelle Konvertierung, wird mit eingebauten Funktionen und Methoden von JavaScript durchgeführt. Bei dieser Konvertierung gibt der Programmierer explizit an, welcher Datentyp in einen anderen umgewandelt werden soll.
Wesentliche Methoden der expliziten Konvertierung:
1. Konvertierung in einen String
- Die Methode
String(value)
: konvertiert einen Wert in einen String
let num = 123;
let str = String(num);
console.log(typeof str); // "string"
value.toString()
: eine Objektsmethode, die den Wert in einen String umwandelt
let bool = true;
let str = bool.toString();
console.log(typeof str); // "string"
2. Konvertierung in eine Zahl
Number(value)
: konvertiert einen Wert in eine Zahl
let str = "456";
let num = Number(str);
console.log(typeof num); // "number"
parseInt(value, base)
: konvertiert einen String in eine ganze Zahl. Der Parameterbase
gibt die Basis des Zahlensystems an
let str = "123";
let num = parseInt(str, 10);
console.log(typeof num); // "number"
parseFloat(value)
: konvertiert einen String in eine Gleitkommazahl
let str = "123.45";
let num = parseFloat(str);
console.log(typeof num); // "number"
3. Konvertierung in einen booleschen Wert
Boolean(value)
: konvertiert einen Wert in einen booleschen Wert
let str = "";
let bool = Boolean(str);
console.log(typeof bool); // "boolean"
1.2 Implizite Typkonvertierung
Implizite Konvertierung, auch bekannt als automatische oder versteckte Konvertierung, wird von JavaScript automatisch durchgeführt, wenn Operationen mit verschiedenen Datentypen ausgeführt werden. Implizite Konvertierung kann zu unerwarteten Ergebnissen führen, daher sollte man sie verstehen und mit Vorsicht verwenden.
1. Konvertierung in einen String
Beim Addieren eines beliebigen Objekts mit einem String versucht JavaScript, es in einen String zu konvertieren.
Beispiel:
let result = "The number is " + 123;
console.log(result); // "The number is 123"
2. Konvertierung in eine Zahl
Bei der Verwendung von beliebigen arithmetischen Operatoren (außer +) mit Strings, die Zahlen enthalten.
let result = "123" - 0;
console.log(result); // 123 (Zahl)
Wie es in der Praxis funktioniert:
let result = "123" - 10;
console.log(result); // 113 (Zahl)
let result2 = "123" + 10;
console.log(result2); // 12310 (String)
3. Konvertierung in einen booleschen Wert
Bei der Verwendung von Werten in logischen Kontexten (Bedingungsoperatoren, Schleifen usw.).
let value = "hello";
if (value) {
console.log("Value is truthy"); // Ausgabe: "Value is truthy"
}
Beispiele für Konvertierungen im logischen Kontext:
false
,0
,""
(leerer String),null
,undefined
, undNaN
werden als falsche (false
) Werte betrachtet- Alle anderen Werte werden als wahr (
true
) betrachtet
if ("") {
console.log("This won't be logged.");
} else {
console.log('"" is considered false in a boolean context.');
}
// '"" is considered false in a boolean context.'
1.3 Beispiele für implizite Konvertierung
Beispiel mit arithmetischen Operationen:
let width = "100";
let height = "200";
let area = Number(width) * Number(height); // Explizite Konvertierung
console.log(area); // 20000
let perimeter = (+width) + (+height); // Verwendung des unären Plus zur expliziten Konvertierung
console.log(perimeter); // 300
Beispiel mit logischem Kontext:
let userInput = ""; // Leerer String
if (!userInput) {
console.log("Der Benutzer hat keine Daten eingegeben."); // Implizite Konvertierung des Strings in einen booleschen Wert
}
Beispiel mit kombinierten Typen:
let value = "10";
let increment = 5;
let result = value + increment; // Implizite Konvertierung der Zahl in einen String
console.log(result); // "105"
result = Number(value) + increment; // Explizite Konvertierung des Strings in eine Zahl
console.log(result); // 15
GO TO FULL VERSION