EMZETT.
Login

Kurz: Eine Variable ist ein benannter Speicherplatz für einen Wert. In modernem JavaScript legst du Variablen mit let oder const an.

Teil des Kurses JavaScript

Kapitel 3 von 40 im Kurs JavaScript. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Eine Variable ist ein benannter Speicherplatz für einen Wert. In modernem JavaScript legst du Variablen mit let oder const an.

let alter = 17;
const name = "Mia";
console.log(name, "ist", alter);
alter = 18;                 // let erlaubt Änderungen
console.log(name, "ist jetzt", alter);

Ausgabe:

Mia ist 17
Mia ist jetzt 18

let, const und var

SchlüsselwortNeu zuweisen?GültigkeitEmpfehlung
constneinBlockStandardwahl
letjaBlockwenn sich der Wert ändert
varjaFunktionveraltet, vermeiden

Faustregel: Nimm const, solange du den Wert nicht neu zuweist, sonst let.

const pi = 3.14159;
try {
  pi = 3;                   // nicht erlaubt
} catch (e) {
  console.log(e.name + ": " + e.message);
}

Ausgabe:

TypeError: Assignment to constant variable.

Achtung

const schützt nur die Zuweisung, nicht den Inhalt. Ein const-Array kannst du weiterhin mit push ändern, nur die Variable selbst nicht neu belegen.

const liste = [1, 2];
liste.push(3);              // erlaubt
console.log(liste);

Ausgabe:

[ 1, 2, 3 ]

Namen

  • Buchstaben, Ziffern, _ und $, nicht mit einer Ziffer beginnen
  • Üblich ist camelCase: meinErsterName, anzahlKunden
  • Konstanten mit festen Werten oft GROSS_MIT_UNTERSTRICH: MAX_VERSUCHE
  • Reservierte Wörter wie class, function, if sind verboten

Mehrere Variablen und Tauschen

let a = 1, b = 2;
[a, b] = [b, a];            // tauschen
console.log(a, b);
 
let x;                      // ohne Wert: undefined
console.log(x);
x = 5;
x += 2;                     // kurz für x = x + 2
x *= 3;
console.log(x);

Ausgabe:

2 1
undefined
21

Das Hoisting-Problem von var

var wird “nach oben gezogen” (Hoisting) und gilt in der ganzen Funktion, nicht im Block. Das führt zu Überraschungen:

console.log(spaet);         // undefined, kein Fehler!
var spaet = 5;
 
for (var i = 0; i < 3; i++) {}
console.log(i);             // 3: i "leckt" aus der Schleife

Ausgabe:

undefined
3

Mit let und const passiert das nicht, sie gelten nur im Block { ... } und sind vor ihrer Deklaration nicht benutzbar.

Merke

  • const für Werte, die nicht neu zugewiesen werden; let für veränderliche
  • var vermeiden
  • const schützt nur die Zuweisung, nicht den Inhalt von Arrays und Objekten
  • Namen in camelCase, aussagekräftig
  • Nicht initialisierte Variablen haben den Wert undefined

Übungsaufgabe

Lege const für deinen Namen und let für einen Zähler an, erhöhe den Zähler dreimal um 1 und gib beides aus.

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Das erste Programm

Weiter: Datentypen

Alle Kapitel: JavaScript im Überblick