Variablen deklarieren
Variablen werden in JavaScript nicht wirklich deklariert. Sie entstehen einfach,
sobald man ihnen einen Wert zuweist. Nicht vorhandene Variablen führen
auch nicht zu einem Fehler, sondern liefern immer den Wert undefined.
meinName = "Arthur Dent";
let meinAlter = 31;
const telefonnummer = "+49 721 12345";
Etwas ungewöhnlich ist, dass Variablen automatisch globale Variablen sind,
wenn man ihnen nicht const oder let voranstellt. Hier musst du also wirklich
aufpassen, damit es nicht zu diffizilen, schwer zu findenden Fehlern kommt.
Älterer Code nutzt noch var, neuer Code sollte stattdessen aber
immer let verwenden, da es die Gültigkeit der Variablen noch mehr eingrenzt.
Mit const kannst du im Gegensatz zu let Konstanten definieren. Eine Variable,
deren Wert nicht neu zugewiesen wird, sollte als Konstante definiert werden.
Kann der Wert überschriben werden, verwende let.
let fisch = "Wanda The Fish";
fisch = 27;
Da JavaScript keine wirkliche Deklaration von Variablen kennt, wird auch ihr
Typ nicht fest vorgegeben. Stattdessen hängt es immer davon ab, was man
gerade in eine Variable reinschreibt. Im obigen Beispiel handelt es sich bei der
Variable erst um einen String und dann um eine Zahl. Das ist zwar nicht
schön, aber durchaus erlaubt.
Funktionen und Methoden
Funktionen und Methoden werden in JavaScript genauso aufgerufen wie in
Java. Nur mit dem einen Unterschied, dass Java keine Funktionen (Methoden
ohne Klassen) kennt.
let startButton = document.getElementById("start");
showGameOverScreen("Game Over", "Nochmal versuchen", true);
=> alte Schreibweise:
=> neue Schreibweise:
Wenn es nur eine Anweisung beinhaltet , kann return Parameter und die geschweiften Klammern
weggelassen werden.
let
Die Deklaration von Variablen mit let oder const hat das alte
Schlüsselwort var abgelöst. Variablen, die mit let oder const deklariert werden,
gelten nur innerhalb ihres Blocks, während der Gültigkeitsbereich von
Variablen mit var nur auf Funktionen eingeschränkt ist. var ist zwar
komfortabel, aber in großen Projekten schnell eine abgrundtiefe Fehlerquelle.
Falluntescheidungen
if (alter < 18) {
…
} else if (alter < 60) {
…
} else {
…
}
Hier gibt es fast gar keine Unterschiede zu Java. Lediglich den
Operator === kennt Java nicht: Er prüft nicht nur, ob zwei Variablen inhaltlich
gleich sind, sondern auch ob sie denselben Typ haben:
if (42 == "42") {
// Trifft tatsächlich zu
}
if (42 === "42") {
// Trifft nicht zu
}
An diesem Beispiel siehst du auch, dass JavaScript Strings direkt vergleichen
kann. Eine equals()-Methode brauchen wir hierfür nicht:
let person1 = "Willy";
let person2 = "Alf";
if (person1 === person2) {
…
} else if (person1 != person2) {
…
}
Das switch-Statement hingegen sieht genau wie in Java aus:
switch (event.type) {
case "keydown":
…
break;
case "click":
…
break;
default;
…
}
Schleifen
while (i > 0) {
…
i--;
}
do {
…
i--;
} while (i > 0);
for (let i = 0; i < 100; i++) {
…
}
while,- do- und for-Schleifen sehen alle wie in Java aus. For-Each-Schleifen
funktionieren jedoch anders:
let kontakte = ["Bernd", "Michael", "Stéphane", "Luis"];
for (let i in kontakte) {
let kontakt = kontakte[i];
…
}
Noch moderner geht es mit einer Lambda-Funktion, was Java inzwischen
auch kann:
kontakte.forEach(kontakt => {
…
});