Im Jahr 2015 führte JavaScript ein wichtiges neues Schlüsselwort ein: const
.
Es ist gängige Praxis geworden, Arrays mit const
zu deklarieren:
const cars = ["Saab", "Volvo", "BMW"];
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p id="demo"></p>
<script>
const cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars;
</script>
</body>
</html>
Ein mit const
deklariertes Array kann nicht neu zugewiesen werden:
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p>You can NOT reassign a constant array:</p>
<p id="demo"></p>
<script>
try {
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];
}
catch (err) {
document.getElementById("demo").innerHTML = err;
}
</script>
</body>
</html>
Das Schlüsselwort const
ist etwas irreführend.
Es definiert KEIN konstantes Array. Es definiert einen konstanten Verweis auf ein Array.
Aus diesem Grund können wir die Elemente eines konstanten Arrays immer noch ändern.
Sie können die Elemente eines konstanten Arrays ändern:
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p>Declaring a constant array does NOT make the elements unchangeable:</p>
<p id="demo"></p>
<script>
// Create an Array:
const cars = ["Saab", "Volvo", "BMW"];
// Change an element:
cars[0] = "Toyota";
// Add an element:
cars.push("Audi");
// Display the Array:
document.getElementById("demo").innerHTML = cars;
</script>
</body>
</html>
Das Schlüsselwort const
wird in Internet Explorer 10 oder früher nicht unterstützt.
Die folgende Tabelle definiert die ersten Browserversionen mit vollständiger Unterstützung für das Schlüsselwort const
:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
JavaScript-const
-Variablen muss bei der Deklaration ein Wert zugewiesen werden: <p>Bedeutung: Ein mit const
deklariertes Array muss bei der Deklaration initialisiert werden.
Die Verwendung von const
ohne Initialisierung des Arrays ist eine Syntax Fehler:
Das wird nicht funktionieren:
const cars;
cars = ["Saab", "Volvo", "BMW"];
Mit var
deklarierte Arrays können jederzeit initialisiert werden.
Sie können das Array sogar verwenden, bevor es deklariert wird:
Das ist in Ordnung:
cars = ["Saab", "Volvo", "BMW"];
var cars;
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>JavaScript Hoisting</h2>
<p id="demo"></p>
<script>
cars = ["Saab", "Volvo", "BMW"];
var cars;
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
Ein mit const
deklariertes Array hat Blockbereich.
Ein in einem Block deklariertes Array ist nicht dasselbe wie ein außerhalb des Blocks deklariertes Array:
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Saab"
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>Declaring an Array Using const</h2>
<p id="demo"></p>
<script>
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Saab"
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
Ein mit var
deklariertes Array hat keinen Blockbereich:
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Toyota"
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>Declaring an Array Using var</h2>
<p id="demo"></p>
<script>
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Toyota"
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
Mehr über Block Scope erfahren Sie im Kapitel: JavaScript Scope.
Das erneute Deklarieren eines mit var
deklarierten Arrays ist überall in einem Programm zulässig:
var cars = ["Volvo", "BMW"]; // Allowed
var cars = ["Toyota", "BMW"]; // Allowed
cars = ["Volvo", "Saab"]; // Allowed
Neudeklaration oder Neuzuweisung eines Arrays zu const
, im selben Bereich oder in derselbe Block, ist nicht erlaubt:
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
{
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
}
Neudeklaration oder Neuzuweisung eines vorhandenen const
-Arrays im selben Bereich oder in derselbe Block, ist nicht erlaubt:
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
}
Das erneute Deklarieren eines Arrays mit const
in einem anderen Bereich oder in einem anderen Block ist zulässig:
const cars = ["Volvo", "BMW"]; // Allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
}
{
const cars = ["Volvo", "BMW"]; // Allowed
}
Eine vollständige Array-Referenz finden Sie in unserem:
Vollständige JavaScript-Array-Referenz.
Die Referenz enthält Beschreibungen und Beispiele aller Arrays Eigenschaften und Methoden.