Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. Instruções e declarações
  5. block

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

block

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julho de 2015⁩.

Umadeclaração em bloco (oudeclaração composta (compound) em outras linguagens) é usado para agrupar nenhum ou mais declarações. O bloco é delimitado por um par de chaves e pode opcionalmente sernomeado:

Sintaxe

Declaração de Bloco

{  ListaDeDeclarações}

Declaração de Bloco Nomeada

NomeIdentificador: {  ListaDeDeclarações}
ListaDeDeclarações

Declarações agroupadas com a declaração em bloco.

NomeIdentificador

Umnome (label) opcional para identificação visual ou um alvo parabreak.

Descrição

A declaração em bloco é frequentemente chamada dedeclaração composta (compound) em outras linguagens. Ela permite que você use multiplas declarações onde o JavaScript espera apenas uma declaração. Combinar declarações em blocos são uma prática comum em JavaScript. O comportamento oposto é possível usando umadeclaração vazia, onde você fornece nenhuma declaração, mesmo que uma seja requerida.

Regras de Bloqueio de Escopo

Comvar

Variáveis declaradas comvarnão possuem bloqueio de escopo. Variáveis introduzidas com um bloco são guardadas no escopo da função que elas estão ou script, e os efeitos de configura-las persistem pelo próprio bloco. Em outras palavras, declarações em bloco não introduzem um escopo. Mesmo blocos "standalone" são sintaxes válidas, você não vai querer usar blocos standalone em JavaScript, porque não fazem o que você pensa que eles fazem, se você pensa que eles fazer coisas como blocos em C ou Java. Por exemplo:

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

Isso loga 2 porque a declaraçãovar x com o bloco está no mesmo escopo que a declaraçãovar x antes do bloco. No C ou Java, o código equivalente iria imprimir 1.

Comlet econst

Por contraste, variáveis declaradas comlet econsttem escopo bloqueado:

js
let x = 1;{  let x = 2;}console.log(x); // imprime 1 1

O x = 2 é limitado ao escopo do bloco em que ele foi definido.

O mesmo true deconst:

js
const c = 1;{  const c = 2;}console.log(c); // imprime 1 e não invoca uma throw SyntaxError...

Note que o escope bloqueado deconst c = 2não invoca umaSyntaxError: Identifier 'c' has already been declared porque ele foi unicamente declarado no bloco.

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-block

Compatibilidade com navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp