⊗jsPmBsATC 43 of 505 menu

Automatische Typumwandlung

Wie Sie bereits wissen, sollten Zeichenketten in JavaScript in Anführungszeichen gesetzt werden. Es kann vorkommen, dass alle Zeichen der Zeichenkette Ziffern sind:

let a = '123';

In diesem Fall ist die Variable a ebenfalls eine Zeichenkette, jedoch mit einer Besonderheit.

Die Besonderheit besteht darin: Wenn man eine mathematische Operation auf eine Zeichenkette mit Ziffern anwendet - wird diese Operation so ausgeführt, als ob wir tatsächlich Zahlen und nicht Zeichenketten hätten:

alert('2' * '3'); // gibt 6 aus

In diesem Fall erkennt JavaScript, dass wir versuchen, eine für Zeichenketten ungültige, aber für Zahlen gültige Operation durchzuführen.

Es erkennt auch, dass unsere Zeichenketten im Grunde Zahlen in Anführungszeichen sind. Daher führt JavaScript automatisch eine Umwandlung dieser Zeichenketten in Zahlen durch und führt die entsprechende mathematische Operation mit ihnen aus.

Dies funktioniert, wenn unsere Zeichenketten nur Ziffern enthalten. Wenn dort auch nur ein Buchstabe ist - wird JavaScript die Operation als ungültig betrachten und als Ergebnis den Wert NaN liefern:

alert('2' * '3s'); // gibt NaN aus

Darüber hinaus findet eine automatische Umwandlung statt, wenn die Operation mathematisch korrekt ist, aber für Zeichenketten unzulässig ist.

Zum Beispiel können Zeichenketten (im Gegensatz zu Zahlen) nicht multipliziert, dividiert oder subtrahiert werden, daher wird bei all solchen Operationen eine automatische Umwandlung von Zeichenketten mit Ziffern in Zahlen erfolgen.

Allerdings können Zeichenketten, genau wie Zahlen, mit dem Operator + addiert werden. Das bedeutet, dass es im Falle einer Addition keine automatische Umwandlung geben wird:

let a = '1' + '2'; alert(a); // gibt '12' aus - Zeichenketten wurden addiert

Wenn ein Summand eine Zahl und der andere eine Zeichenkette ist, gewinnt immer die Zeichenkette:

let a = 1 + '2'; alert(a); // gibt '12' aus

In solchen Fällen wandelt JavaScript umgekehrt automatisch die Zahlen in Zeichenketten um und führt die Addition der Zeichenketten durch.

Es gibt jedoch Nuancen, wenn es mehr als zwei Summanden gibt: In diesem Fall hängt die Umwandlung in einen bestimmten Typ von der Reihenfolge der Operationsausführung ab.

Im folgenden Beispiel werden zuerst 2 und 3 als Zahlen addiert, und dann wird das Ergebnis zur Zeichenkette '1' als Zeichenkette '5' addiert, was letztendlich die Zeichenkette '15' ergibt:

let a = '1' + (2 + 3); alert(a); // gibt '15' aus

Wenn man die Klammern weglässt, wird alles von links nach rechts addiert. Das heißt, zuerst wird zur Zeichenkette '1' die Zahl 2 addiert, was zur Zeichenkette '12' führt. Dann wird zu dieser Zeichenkette die Zahl 3 addiert, was zur Zeichenkette '123' führt:

let a = '1' + 2 + 3; alert(a); // gibt '123' aus

Im folgenden Beispiel stehen die Zahlen 2 und 3 jedoch am Anfang, daher werden sie zuerst als Zahlen addiert, was die Zahl 5 ergibt, und dann wird diese Zahl zur Zeichenkette '1' addiert, was letztendlich die Zeichenkette '51' ergibt:

let a = 2 + 3 + '1'; alert(a); // gibt '51' aus

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5' + '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5' + 2; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = 5 + '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = 5 + 2; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5' * '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, что выведется auf dem Bildschirm ausgegeben wird:

let a = '5' - '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5' / '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5' % '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5s' * '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5s' + '2'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = (-'5') + (-'2'); alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5' * 1 + '2' * 1; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '5' * '1' + '2' * '1'; alert(a);

Bestimmen Sie, ohne den Code auszuführen, was auf dem Bildschirm ausgegeben wird:

let a = '' + 3 + 1; alert(a);
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen