| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/block | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.
Una sentencia block se utiliza para agrupar cero o ms sentencias. Este grupo block se delimita por un par de llaves.
{ sentencia_1; sentencia_2; ... sentencia_n; }
sentencia_1, sentencia_2, sentencia_nSentencias agrupadas dentro de una sentencia block.
Esta sentencia se utiliza comnmente para controlar sentencias de flujo (es decir if, for, while). Por ejemplo:
while (x < 10) {
x++;
}
Las variables declaradas con var no tienen alcance de bloque(block scope). Las variables introducidas dentro de un grupo block tienen el alcance de la funcin que lo contiene o del script, y los efectos de su asignacin persisten ms all del grupo block en s mismo. En otras palabras, las sentencias block no incluyen ningn alcance. Aunque los grupos block "en solitario" (standalone) son una sintaxis vlida, usted no querr utilizar grupos block en solitario en JavaScript, ya que ellos no hacen lo que parecen, si piensa que funcionan de manera similar a los bloques en C o Java. Por ejemplo:
var x = 1;
{
var x = 2;
}
alert(x); // resultado 2
Este obtiene el resultado 2 ya que la sentencia var x dentro del grupo block tiene el mismo alcance que la sentencia var x antes del mismo. En C o Java, el cdigo equivalente tendra como resultado 1.
let y constPor el contrario, las variables declaradas con let y const tienen alcance de bloque.
let x = 1;
{
let x = 2;
}
console.log(x); // logs 1
El alcance x = 2 es limitado solamente al bloque en el que est definido.
Lo mismo para const:
const c = 1;
{
const c = 2;
}
console.log(c); // logs 1 y no lanza SyntaxError...
Tenga en cuenta que la variable const c = 2 con alcance de bloque, no lanza un SyntaxError: El identificador 'c' ya ha sido declarado. Esto es porque se puede declarar de forma nica dentro del bloque, sin interferir con la otra que tiene un alcance global.
functionLa declaracin de una funcin tambin tiene un alcance limitado dentro del bloque donde se produce la declaracin:
nacion("frances"); // TypeError: nacion no es una funcin
{
function nacion(nacionalidad) {
console.log("Yo soy " + nacionalidad);
}
nacion("espaol"); // correcto. logs Yo soy espaol
}
This page was last modified on 29 may 2026 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |