--- title: break slug: Web/JavaScript/Reference/Statements/break translation_of: Web/JavaScript/Reference/Statements/break original_slug: Web/JavaScript/Referencia/Sentencies/break ---
La sentència break acaba el bucle actual, {{jsxref("Statements/switch", "switch")}}, o una sentència {{jsxref("Statements/label", "label")}} i transfereix el control de programa a la sentència següent de la sentència acabada.
break [etiqueta];
EtiquetaLa sentència break inclou una etiqueta opcional que permet al programa sortir de la sentència etiquetada. La sentència break necessita ser imbricada dins l'etiqueta de referència. La sentència etiquetada pot ser qualsevol sentència {{jsxref("Statements/block", "block")}}, no ha de ser precedida per una sentència de bucle.
La funció següent té una sentència break que acaba amb el bucle{{jsxref("Statements/while", "while")}} quan i és 3, per després retornar el valor 3 * x.
function testBreak(x) {
var i = 0;
while (i < 6) {
if (i == 3) {
break;
}
i += 1;
}
return i * x;
}
El codi següent utilitza sentències break amb blocs etiquetats. Una sentència break ha de ser imbricada dins de qualsevol etiqueta que fa referència. Vegeu que inner_block és troba imbricada dins outer_block.
outer_block: {
inner_block: {
console.log('1');
break outer_block; // surt tan de inner_block com de outer_block
console.log(':-('); // es salta
}
console.log('2'); // es salta
}
El codi següent també utilitza sentències break amb blocs etiquetats però cenera un Syntax Error perquè la sentència break es troba dins de block_1 però fa referència a block_2. Una sentència break ha d'estar sempre imbricada dins de l'eitqueta a la que fa referència.
block_1: {
console.log('1');
break block_2; // SyntaxError: etiqueta no trobada
}
block_2: {
console.log('2');
}
| Especificació | Estat | Comentaris |
|---|---|---|
| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definició inicial. Versió no etiquetada. |
| {{SpecName('ES3')}} | {{Spec2('ES3')}} | versió etiquetada afegida. |
| {{SpecName('ES5.1', '#sec-12.8', 'Break statement')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES6', '#sec-break-statement', 'Break statement')}} | {{Spec2('ES6')}} |
{{CompatibilityTable}}
| Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Característica | Android | Chrome per Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |