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