label

Ein Statement kann ein Label erhalten und zusammen mit dem break oder continue Statements verwendet werden. Das Label ist das Präfix von einem Statement mit einer Bezeichner zum referenzieren.

Syntax

label : statement
label
Jeder JavaScript Bezeichner, welches kein reserviertes Wort ist.
statement
Statements. break kann mit jedem gelabelten Statement und continue kann mit Schleifen-Statements verwendet werden.

Beschreibung

Sie können ein Label verwenden, um eine Schleife zu identifizieren und danach einen break oder continue Statement verwenden, um anzugeben ob ein Programm die Schleife abbrechen oder weiter abarbeiten soll.

Hinweis: JavaScript hat KEINE goto Statements. Sie können die Labels nur mit break oder continue verwenden.

Beispiele

Verwenden eines continue mit Labels in for-Schleifen

var i, j;

loop1:
for (i = 0; i < 3; i++) {      // Das erste for Statement hat den Label "loop1"
   loop2:
   for (j = 0; j < 3; j++) {   // Das zweite for Statement hat den Label "loop2"
      if (i === 1 && j === 1) {
         continue loop1;
      }
      console.log("i = " + i + ", j = " + j);
   }
}

// Ausgabe ist:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
//   "i = 2, j = 0"
//   "i = 2, j = 1"
//   "i = 2, j = 2"
// Schau, wie "i = 1, j = 1" und"i = 1, j = 2" übersprungen werden

Verwenden eines continue Statements mit Label

Gegeben sei ein Array von Elementen und ein Array von Tests. Dieses Beispiel zählt die Anzahl von Elemente, die alle Tests bestehen.

var itemsPassed = 0;
var i, j;

top:
for (i = 0; i < items.length; i++){
  for (j = 0; j < tests.length; j++) {
    if (!tests[j].pass(items[i])) {
      continue top;
    }
  }

  itemsPassed++;
}

Verwenden eines breaks mit Labels für for-Schleifen

var i, j;

loop1:
for (i = 0; i < 3; i++) {      // Das erste for Statement hat den Label "loop1"
   loop2:
   for (j = 0; j < 3; j++) {   // Das zweite for Statement hat den Label "loop2"
      if (i === 1 && j === 1) {
         break loop1;
      }
      console.log("i = " + i + ", j = " + j);
   }
}

// Ausgabe ist:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
// Schau den Unterschied zu dem vorigen continue Beispiel an

Verwenden eines Labels im break Statement

Gegeben ist ein Array von Items und ein Array von Tests. Dieses Beispiel bestimmt, ob alle Items alle Tests bestehen.

var allPass = true;
var i, j;

top:
for (i = 0; items.length; i++)
  for (j = 0; j < tests.length; i++)
    if (!tests[j].pass(items[i])){
      allPass = false;
      break top;
    }

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 3rd Edition (ECMA-262) Standard Initiale Definition. Implementiert in JavaScript 1.2
ECMAScript 5.1 (ECMA-262)
Die Definition von 'Labelled statement' in dieser Spezifikation.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Labelled statement' in dieser Spezifikation.
Standard  
ECMAScript 2017 Draft (ECMA-262)
Die Definition von 'Labelled statement' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Ja) (Ja) (Ja) (Ja) (Ja)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Ja) (Ja) (Ja) (Ja) (Ja) (Ja)

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
 Mitwirkende an dieser Seite: schlagi123, eluchsinger
 Zuletzt aktualisiert von: schlagi123,