block

This article needs an editorial review. How you can help.

Resum

Una sentència bloc (o sentència composta en altres llengües) s'usa per agrupar zero o més sentències. El bloc està delimitat per un parell de claus.

Sintaxi

{
  sentència_1;
  sentència_2;
  ...
  sentència_n;
}
statement_1, statement_2, statement_n
Sentències agrupades dins la sentència block.

Descripció

Aquesta sentència s'utilitza normalment amb les sentències de control de flux (p.ex. if, for, while). Per exemple:

while (x < 10) {
  x++;
}

Tingueu en compte que la sentència block no acaba amb un punt i coma.

La sentència bloc sovint s'anomena sentència composta en altres llengües. Aquesta sentència permet usar múltiples sentències allà on JavaScript espera només una única sentència. Combinar sentències en blocs és una pràctica comuna en JavaScript. El comportament oposat és possible fent servir una sentència buida, on no es proporciona cap declaració, encara que es requereixi una.

Fora de l'àmbit del bloc

Important: Les variables declarades amb var no tenen àmbit de bloc. Les variables introduïdes amb un bloc estàn en l'àmbit de la funció o l'script que els conté, i els efectes d'establir-los persisteixen més enllà del mateix bloc. En altres paraules, les sentències de bloc no introdueixen un àmbit. Encara que els blocs "independents" són sintàcticament vàlids, no és desitjable usar-los en JavaScript, ja que no fan el que pensem que fan, en el cas que penseu que fan alguna cosa semblant als blocs en C o Java. Per exemple:

var x = 1;
{
  var x = 2;
}
console.log(x); // logs 2

Això registra 2 ja que la sentència var x dins el bloc es troba en el mateix àmbit que la sentència var x anterior al bloc. En C o Java, el codi equivalent hauria emès 1.

Especificacions

Especificacions Estat Comentaris
1a edició d'ECMAScript. Estàndard Definició inicial. Implementat en JavaScript 1.0
ECMAScript 5.1 (ECMA-262)
The definition of 'Block statement' in that specification.
Standard  
ECMAScript 6 (ECMA-262)
The definition of 'Block statement' in that specification.
Release Candidate  

Compatibilitat amb navegadors

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes)
Característica Android Chrome per Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vegeu també

Document Tags and Contributors

 Contributors to this page: fscholz, llue
 Last updated by: fscholz,