Man will mit Javascript nicht nur verschiedene Daten darstellen, sondern auch mit Ihnen arbeiten, beispielsweise um einen Spielstand zu errechnen, den Gesamtwert eines Warenkorbs errechnen oder nach dem Einloggen den Namen des Users anzuzeigen. Dazu verwendet man Operatoren.
Eine mathematische Formel nennt man Ausdruck. Ein Ausdruck liefert immer ein Ergebnis. In einem Ausdruck kommen Operanden und Operatoren vor.
3 | + | 4 |
Operand | Operator | Operand |
Die Operanden können Variablen oder einfache Werte sein. Einfache Werte nennt man Literale. Literal bedeutet nichts weiter, als dass der gesamte Wert in einem Schritt aufgeschrieben
wird, statt ihn erst in mehreren Schritten aufzubauen.
x = 3; x = "Hallo"; x = ["Haus","Baum","Straßenlampe"];
Desweiteren gibt es in Programmiersprachen Anweisungen, die man nicht mit Ausdrücken verwechseln sollte. Eine Anweisung ist ein Befehl, der mit Semikolon abgeschlossen wird.
Mehrere Anweisungen können als Codeblöcke in geschweiften Klammern eingefasst werden.
{
Anweisung;
Anweisung;
Anweisung;
}
Ein Operator, der sich nur auf einen Wert bezieht nennt man unären Operator (++), einen Operator der sich auf 2 Werte bezieht nennt man binären Operator (+). Es gibt in Javascript auch Operatoren, die sich auf 3 Wert beziehen, den ternären Operator.
Rechenoperatoren oder arithmetische Operatoren arbeiten mit Zahlen dem Datentyp Number.
Punktrechnung geht vor Strichrechnung. In Klammern gefasste Rechenoperationen werden zusammengefasst ausgerechnet.
Rechenart | Zeichen | Beispiel | Info |
---|---|---|---|
Addition | + | let x = 3+2; | Ergebnis 5 |
Subtraktion | - | let x = 4-1; | Ergebnis 3 |
Multiplikation | * | let x = 3 * 5; | Ergebnis 15 |
Division | / | let x = 6 / 2; | Ergebnis 3 |
Modulo | % | let x = 13 % 2; | Der Restwert einer Division wird zurückgegeben. In diesem Beispiel ist es der Wert 1. 13 / 2 ist 6 Rest 1 Beispiel |
Inkrement | ++ | x++; | Der vorhandene Wert von x wird um 1 erhöht. aus 2 wird 3 |
Dekrement | -- | x-- | Der vorhandene Wert wird um 1 verringert. Aus 2 wird 1; |
Oft will man den Wert einer Variablen um 1 erhöhen oder verringern.
Mit Inkrementoren kann man einen vorhandenen Wert um eins erhöhen mit Dekrementoren kann man einen vorhandenen Wert um eins verringern.
let x = 5; x = x + 1;
Stattdessen kann man schreiben.
let x = 5; x++;
Wenn man Inkrement oder Dekrement innerhalb eines Ausdrucks nutzt und möchte, dass der Wert vor dem Auswerten des Ausdrucks verringert oder erhöht wird, schreibt man den Inkrementor oder Dekrementor vor die Varibale. Das nennt man Präinkrement oder Prädekrement. Wir sehen im folgendem Beispiel, dass erst beim zweiten console.log
der Wert von x um 1 erhöht wurde (Postinkrement). Im dritten console.log
sieht man, dass es schon im console.log
Aufruf erhöht wurde (Präinkrement). Beispiel
let x = 5;
console.log(x++); //5
console.log(x); //6
console.log(++x); //7
Will man den Wert einer Variablen um einen bestimmten Betrag erhöhen oder verringern, so könnte man beispielsweise schreiben:
let x = 5;
x = x + 3;
Stattdessen kann man Rechenoperatoren mit Zuweisung nutzen.
let x = 5;
x += 3;
Zeichen | Beispiel | Langform | Info |
---|---|---|---|
+= | x += 2 | x = x +2 | Der vorhandene Wert wird um einen bestimmten Wert erhöht. Aus 2 wird 4 |
-= | x -= 2 | x=x-2 | Vom vorhandenen Wert wird ein bestimmter Wert subtrahiert. Aus 2 wird 0 |
/= | x /= 2 | x=x/2 | Der vorhandene Wert wird durch einen bestimmten Wert dividiert. Aus 2 wird 1; |
*= | x *= 2 | x=x*2 | Der vorhandene Wert wird mit einem bestimmten Wert multipliziert. Aus 2 wird 4; |
%= | x %= 2 | x=x%2 | Der Rest der Division wird zugewiesen. Aus 2 wird 0; |
Zeichenketten kann man aneinanderreihen mit dem + Operator. Man nennt das Konkatenation.
let gruss= "Hallo "; let name = "Willi"; let ausgabe = gruss + name; ausgabe = gruss + name + " Hubert";
Beachten Sie, dass der String 'Hallo ' mit einem Leerzeichen am Ende versehen wurde.
Man könnte stattdessen auch ein Leerzeichen verknüpfen.
let ausgabe = gruss + ' '+ name;
Desweiteren kann man den Zuweisungsoperator verwenden += um einen String um einen weiteren String zu erweitern.
let name = 'Willi '; name += 'Huber'; // 'Willi Huber'
Man kann mehrere boolsche Werte verknüpfen, um zu überprüfen, ob beide Werte true sind, oder nur einer von beiden. Außerdem kann man einen Wert in das Gegenteil umwandeln.
let a = true; let b = false; let c = a && b; // Ergebnis false
Das Ausrufezeichen ist ein unärer Operator er benötigt nur einen Wert.
let d = !true // Ergebnis false
&& | logisches Und | Beides muss erfüllt sein |
|| | oder | Eins von beiden muss erfüllt sein |
! | Negation, | Verneinung aus true wird false, aus false wird true Es ist ein unärer Operator weil er sich nur auf einen Wert bezieht. |
Vergleichsoperatoren liefern true oder false und können in if-Strukturen eingesetzt werden.
Weitere Vergleichsoperatoren(weitere Infos bei Selfhtml Vergleichsoperatoren)
== | gleich |
!= | ungleich |
> | größer als |
< | kleiner als |
>= | größer gleich |
<= | kleiner gleich |
=== !== |
Gleichheit oder Ungleichheit können Sie nicht nur mit == bzw. !=, sondern auch mit === bzw. !== abprüfen. In diesem Fall werden die Werte zusätzlich auf ihren Datenntyp hin überprüft. |
In einer bedingten Anweisung kann man je nach Abfrageergebnis Anweisungen ausführen. Das macht man mit einer if-else-Struktur. Eine kürzere Schreibweise erreicht man mit dem ternären Auswahloperator. Er heißt ternärer Auwahloperator weil er sich auf 3 Operanden bezieht.
let alter = 14; if(alter >= 18){ console.log("Herzlich willkommen.") }else{ console.log("Eintritt erst ab 18.") }
Es folgt die Alternative mit dem ternären Auswahloperator. Man beachte die Schreibweise mit Fragezeichen ? und Doppelpunkt :
let alter = 30; (alter >= 18) ? console.log("Herzliche Willkommen") : console.log("Eintritt erst ab 18");
Bedingung ? True-Anweisung : Else-Anweisung;
Hiermit werden Binärzahlen um Stellen nach links oder rechts verschoben und mit Nullen aufgefüllt. Zum Beispiel die Zahl 42 hat die Binärzahl 101010 |
||
Dezimalzahl 42 | 101010 | |
zahl << 1 | 1 Stelle nach links entspricht einer Multiplikation mit 2. | 1010100 |
zahl >>1; | 1 Stelle nach rechts entspricht teilen durch 2 (ganzzahlig) | 10101 |
zahl << 2; | 2 Stellen entspricht multiplizieren mit 2 mal 2. | 10101000 |
3 Klammern bedeutet es wird auf jeden Fall mit Nullen aufgefüllt, bei größeren Zahlen könnte es ja auch sein, dass eine 1 folgt | 000101 |
Bitoperatoren verschieben nicht, sondern verknüpfen Bits direkt miteinander. Nehmen wir als Beispiel die beiden Operanden a und b mit folgenden Werten |
||
10 |
Diese beiden Bit Operanden werden Stelle für Stelle verglichen. | 1010 1100 |
a & b | Wenn beide Operanden an der gleichen Stelle eine 1 stehen haben erscheint eine 1. | 1000 |
a | b | Bitweiser oder Operator. Es erscheint nur dann eine 0, wenn auf beiden Seiten an gleicher Stelle eine 0 steht. | 1110 |
a^b | xor ein ausschließender Operator, wir erhalten eine 0 wenn auf beiden Seiten der gleiche Wert steht und eine 1 wenn auf beiden Seiten etwas verschiedenes steht. | 0110 |
Der Komplementäroperator wird nur auf einen Operanden angesetzt und dieser kehrt die Werte um. Eine 1 wird zur 0 und eine 0 zur 1 | 0101 |