JavaScript-Konst


Inhaltsverzeichnis

    Inhaltsverzeichnis anzeigen


ECMAScript 2015 (ES6)

Im Jahr 2015 führte JavaScript ein wichtiges neues Schlüsselwort ein: const.

Es ist gängige Praxis geworden, Arrays mit const zu deklarieren:

Beispiel

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>

Kann nicht neu zugewiesen werden

Ein mit const deklariertes Array kann nicht neu zugewiesen werden:

Beispiel

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>

Arrays sind keine Konstanten

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.


Elemente können neu zugewiesen werden

Sie können die Elemente eines konstanten Arrays ändern:

Beispiel

// 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>

Browser-Unterstützung

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

Wird bei der Deklaration zugewiesen

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:

Beispiel

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:

Beispiel

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>

Const-Blockbereich

Ein mit const deklariertes Array hat Blockbereich.

Ein in einem Block deklariertes Array ist nicht dasselbe wie ein außerhalb des Blocks deklariertes Array:

Beispiel

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:

Beispiel

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.



Arrays neu deklarieren

Das erneute Deklarieren eines mit var deklarierten Arrays ist überall in einem Programm zulässig:

Beispiel

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:

Beispiel

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:

Beispiel

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:

Beispiel

const cars = ["Volvo", "BMW"];   // Allowed
{
  const cars = ["Volvo", "BMW"]; // Allowed
}
{
  const cars = ["Volvo", "BMW"]; // Allowed
}

Vollständige Array-Referenz

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.