Variablen und Konstanten
Mit ES2015 wurden in JavaScript Konstanten eingeführt. Einer Konstanten muss bei ihrer Deklaration ein Wert zugewiesen werden, der nicht mehr verändert werden kann. Sonst führt dies zu einem Laufzeitfehler:
// Konstanten müssen initialisiert werden
const sum = 100 * 8;
// Konstanten sind unveränderlich
sum = 123; // --> Fehler!
// Konstanten benötigen einen Wert
const error; // --> Fehler!
Ursprünglich gab es nur ein Konzept für lokale Variablen in JavaScript. Lokale Variablen konnten vor Version ES2015 nur mit var
deklariert werden. Allerdings bezieht sich der Sichtbarkeitsbereich (Scope) einer mit var
deklarierten Variablen auf die Funktion (Function Scope) und nicht auf den umgebenden Block (Block Scope). Diese Semantik unterscheidet sich von dem Konzept der lokalen Variablen in vielen anderen Programmiersprachen. Dort haben lokale Variablen in der Regel eine Gültigkeit in Bezug auf den umgebenden Block (Block Scope). Dieser Unter- schied hat bei vielen Programmierern bestimmt gelegentlich zu Verwirrung geführt. Mit let
gibt es nun in ES2015 die Möglichkeit, Variablen mit Block Scope zu definieren. Auch für Konstanten gilt der Block Scope:
function exampleForScope() {
if (true) {
var x = 1;
let y = 2;
y = 3; // let deklariert Variablen, mehrfache Zuweisung möglich
let y = 3; // --> Fehler! (keine Mehrfachdeklaration bei let)
const z = 3;
z = 4; // --> Fehler! (Konstanten dürfen nicht geändert werden)
console.log(x); // Ausgabe: 1
console.log(y); // Ausgabe: 2
console.log(z); // Ausgabe: 3
}
// x hat Function Scope
console.log(x); // Ausgabe: 1
// y und z haben Block Scope und sind nicht mehr sichtbar
console.log(y); // --> Fehler!
console.log(z); // --> Fehler!
}