1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
---
title: block
slug: Web/JavaScript/Reference/Statements/block
translation_of: Web/JavaScript/Reference/Statements/block
original_slug: Web/JavaScript/Referencia/Sentencies/block
---
<div>
<div>{{jsSidebar("Statements")}}</div>
</div>
<h2 id="Resum">Resum</h2>
<p>Una<strong> sentència bloc</strong> (o <strong>sentència composta</strong> en altres llengües) s'usa per agrupar zero o més sentències. El bloc està delimitat per un parell de claus.</p>
<h2 id="Sintaxi">Sintaxi</h2>
<pre class="syntaxbox">{
<var>sentència_1</var>;
<var>sentència_2;</var>
...
<var>sentència_n;</var>
}
</pre>
<dl>
<dt><code>statement_1</code>, <code>statement_2</code>, <code>statement_n</code></dt>
<dd>Sentències agrupades dins la sentència block.</dd>
</dl>
<h2 id="Descripció">Descripció</h2>
<p>Aquesta sentència s'utilitza normalment amb les sentències de control de flux (p.ex. <code>if</code>, <code>for</code>, <code>while</code>). Per exemple:</p>
<pre class="brush: js">while (x < 10) {
x++;
}
</pre>
<p>Tingueu en compte que la sentència block no acaba amb un punt i coma.</p>
<p>La sentència bloc sovint s'anomena <strong>sentència composta</strong> 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 <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Empty">sentència buida</a>, on no es proporciona cap declaració, encara que es requereixi una.</p>
<h3 id="Fora_de_l'àmbit_del_bloc">Fora de l'àmbit del bloc</h3>
<p><strong>Important</strong>: Les variables declarades amb <code>var</code> 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:</p>
<pre class="brush: js">var x = 1;
{
var x = 2;
}
console.log(x); // logs 2
</pre>
<p>Això registra 2 ja que la sentència <code>var x</code> dins el bloc es troba en el mateix àmbit que la sentència <code>var x</code> anterior al bloc. En C o Java, el codi equivalent hauria emès 1.</p>
<h2 id="Especificacions">Especificacions</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificacions</th>
<th scope="col">Estat</th>
<th scope="col">Comentaris</th>
</tr>
<tr>
<td>1a edició d'ECMAScript.</td>
<td>Estàndard</td>
<td>Definició inicial. Implementat en JavaScript 1.0</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-12.1', 'Block statement')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-block', 'Block statement')}}</td>
<td>{{Spec2('ES6')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Android</th>
<th>Chrome per Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="See_also" name="See_also">Vegeu també</h2>
<ul>
<li>{{jsxref("Statements/while", "while")}}</li>
</ul>
|