Bei der Arbeit mit Daten möchten wir diese meistens nicht nur speichern und wieder abrufen, sondern auch verändern und Berechnungen mit ihnen durchführen. Wir sehen uns in diesem Abschnitt die grundlegendsten Operationen für Zahlen und Zeichenketten an und lernen dabei auch, wie wir den Wert von Variablen ändern können mit Bezug zu ihrem alten Wert.

Grundlegende Berechnungen mit Zahlen

Die häufigsten Berechnungen mit Zahlen, die uns unterkommen werden, verwenden einfach die Grundrechenarten. Diese werden in JavaScript mit den üblichen Rechensymbolen + (Addition), - (Subtraktion), * (Multiplikation) und / (Division) dargestellt. Als weiterer nützlicher Rechenoperator begegnet uns noch häufig % für den Rest bei ganzzahliger Division (z.B. ist 25%7=4, weil 25=3*7+4 gilt).
Für verschachtelte Rechnungen werden wie in der Mathematik üblich Klammern verwendet, um die Reihenfolge festzulegen. Ohne Klammern gelten außerdem die Regeln Punkt vor Strich und von links nach rechts zur Festlegung der Rechenreihenfolge. Die Rechenausdrücke können zum Beispiel direkt bei der Wertzuweisung zu einer Variablen eingesetzt werden, wie das folgende Beispiel zeigt.

<script>
var berechnung = 6-3+(13-5)/2;
alert(berechnung);
</script>

In so einem Fall könnten wir uns (bzw. dem Browser) die Berechnung sparen und einfach direkt das Ergebnis als Wert der Variablen zuweisen. Meistens ist es aber so, dass Berechnungen mit Werten durchgeführt werden müssen, die in Variablen gespeichert sind und nicht im Voraus bekannt sind (etwa wenn sie durch den Benutzer eingegeben wurden). In solchen Fällen können die Zahlen in den Rechenausdrücken einfach durch die Variablennamen ersetzt werden:

<script>
var anzahl = 5;
var preis = 7;
var gesamtkosten = anzahl * preis;
alert(gesamtkosten);
</script>

Was machen wir, wenn wir bei der Berechnung des Werts für eine Variable ihren eigenen Wert benötigen? Das kommt z.B. immer dann vor, wenn wir einen in der Variablen gegebenen Wert um einen gewissen Betrag erhöhen möchten (was uns ständig begegnen wird). Eine Idee wäre hier, eine Hilfsvariable zu benutzen:

<script>
var gaestezahl = 43;
var neuanmeldungen = 12;
var gaestezahl_alt = gaestezahl;
gaestezahl = gaestezahl_alt + neuanmeldungen;
alert(gaestezahl);
</script>

Dieses Beispiel funktioniert, ist aber unnötig lang. JavaScript macht es uns an dieser Stelle leichter. Dasselbe Ergebnis erreichen wir mit folgendem kürzeren Code ohne Einführung einer Hilfsvariablen:

<script>
var gaestezahl = 43;
var neuanmeldungen = 12;
gaestezahl = gaestezahl + neuanmeldungen;
alert(gaestezahl);
</script>

Die dritte Zeile sieht auf den ersten Blick vielleicht widersprüchlich aus: als Aussage aufgefasst würde sie tatsächlich auch keinen Sinn ergeben, weil sie mit den eingesetzten Zahlen falsch wäre. Wichtig ist hier aber zu beachten, dass diese Zeile in JavaScript nicht als Aussage behandelt wird, sondern als Befehl. Der Rechenausdruck auf der rechten Seite des Gleichheitszeichens wird zunächst ausgewertet und dann in der Variablen auf der linken Seite gespeichert. Mit dieser Betrachtungsweise ist klar, warum das Beispiel funktioniert.
Da Berechnung dieser Form (also bei denen der Wert einer Variablen verwendet und durch eine einfache Rechenoperation verändert wird) so häufig vorkommen, gibt es eine abkürzende Schreibweise dafür. Das folgende Beispiel erhöht den Wert der Variablen punktzahl um den Wert 5:

<script>
punktzahl += 5;//ersetzt: punktzahl = punktzahl + 5;
</script>

Das funktioniert genauso mit allen anderen oben erwähnten Rechenarten. Speziell für den Fall, dass wir den Wert einer Variablen um 1 erhöhen (increment) oder verringern (decrement) wollen, gibt es jeweils eine noch kürzere Schreibweise mit den sogenannten Inkrement- bzw. Dekrementoperatoren:

<script>
var zaehler = 13;
zaehler++;//zaehler = 14;
zaheler--;//zaehler = 13;
</script>

Zeichenketten zusammenfügen

Die einfachste Operation in JavaScript mit Zeichenketten ist das Zusammenfügen von mehreren Zeichenketten. Dafür wird wie bei der Addition das Zeichen + verwendet. Man muss also aufpassen, dass man hier nichts mit den mathematischen Berechnungen durcheinander bringt. Die anderen Rechensymbole können nicht auf Zeichenketten angewendet werden. Folgendes Beispiel demonstriert die Verkettung von mehreren Strings:

<script>
var adjektiv = "juristische";
var substantiv = "Spitzfindigkeit";
alert(adjektiv + " " + substantiv);
</script>

Aufgabe

Schreibe ein JavaScript-Programm, das den Benutzer nach seinem Namen fragt und dann eine Willkommensnachricht ausgibt, die diesen Namen enthält.