Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
block
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
Resumen
Una sentencia block se utiliza para agrupar cero o más sentencias. Este grupo block se delimita por un par de llaves.
In this article
Sintaxis
{ sentencia_1; sentencia_2; ... sentencia_n; }sentencia_1,sentencia_2,sentencia_nSentencias agrupadas dentro de una sentencia block.
Descripción
Esta sentencia se utiliza comúnmente para controlar sentencias de flujo (es decirif,for,while). Por ejemplo:
while (x < 10) { x++;}Las variables declaradas convarno tienen alcance de bloque(block scope). Las variables introducidas dentro de un grupo block tienen el alcance de la función que lo contiene o del script, y los efectos de su asignación persisten más allá del grupo block en sí mismo. En otras palabras, las sentencias block no incluyen ningún alcance. Aunque los grupos block "en solitario" (standalone) son una sintaxis válida, 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 2Este obtiene el resultado 2 ya que la sentenciavar x dentro del grupo block tiene el mismo alcance que la sentenciavar x antes del mismo. En C o Java, el código equivalente tendría como resultado 1.
Conlet yconst
Por el contrario, las variables declaradas conlet yconst tienen alcance de bloque.
let x = 1;{ let x = 2;}console.log(x); // logs 1El alcancex = 2 es limitado solamente al bloque en el que está definido.
Lo mismo paraconst:
const c = 1;{ const c = 2;}console.log(c); // logs 1 y no lanza SyntaxError...Tenga en cuenta que la variableconst c = 2 con alcance de bloque,no lanza unSyntaxError: El identificador 'c' ya ha sido declarado. Esto es porquese puede declarar de forma única dentro del bloque, sin interferir con la otra que tiene un alcance global.
Confunction
Ladeclaración de una función también tiene un alcance limitado dentro del bloque donde se produce la declaración:
nacion("frances"); // TypeError: nacion no es una función{ function nacion(nacionalidad) { console.log("Yo soy " + nacionalidad); } nacion("español"); // correcto. logs Yo soy español}