Movatterモバイル変換


[0]ホーム

URL:


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

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

const

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⁩.

Constantes possuem escopo de bloco, semelhantes às variáveis declaradas usando o palavra-chavelet. O valor de uma constante não pode ser alterado por uma atribuição, e ela não pode ser redeclarada.

Experimente

const number = 42;try {  number = 99;} catch (err) {  console.log(err);  // Expected output: TypeError: invalid assignment to const 'number'  // (Note: the exact output may be browser-dependent)}console.log(number);// Expected output: 42

Resumo

Adeclaraçãoconst cria uma variável cujo o valor é fixo, ou seja, uma constante somente leitura. Isso não significa que o valor é imutável, apenas que a variável constante não pode ser alterada ou retribuída.

Sintaxe

const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]]];
nameN

Nome da constante. Pode ser qualqueridentificador válido.

valueN

Valor atribuido a constante. Pode ser qualquerexpressão válida, incluindo uma função.

Descrição

Esta declaração cria uma constante que pode pertencer tanto ao escopo global (na janela ou objeto) quanto ao local do bloco em que é declarada. Constantes globais não se tornam propriedades do objetowindow, diferente da criação de variáveis comvar.

Toda constante requer um inicializador, ou seja, é preciso especificar um valor para a constante no momento em que ela é declarada (o que faz sentido, uma vez que esse valor não pode ser alterado).

A declaraçãoconst cria uma referência somente leitura a um valor. Issonão significa que esse valor é imutável, apenas que o identificador da variável constante não pode ser alterado. Se o conteúdo do identificador for um objeto, isso significa que o conteúdo do objeto (ex. seus parâmetros) podem ser alterados.

Todas as considerações de"temporal dead zone" se aplicam tanto alet quanto aconst.

Uma constante não pode ter o mesmo nome que uma função ou variável que esteja no mesmo escopo.

Exemplos

O exemplo abaixo demonstra o comportamento de uma constante. Experimente executá-lo no console do seu navegador.

js
// NOTA: constantes podem ser declaradas em caixa alta ou baixa,// mas uma convenção comum é usar apenas caixa alta// define MY_FAV como uma constante e lhe atribui o valor 7const MY_FAV = 7;// isto falha mas não emite erros no Firefox e Chrome (porém não falha no Safari)MY_FAV = 20;// a variável MY_FAV possui o valor 7console.log("my favorite number is: " + MY_FAV);// tentar redeclarar a constante emite um erro - Uncaught SyntaxError: Identifier 'MY_FAV' has already been declaredconst MY_FAV = 20;// o nome MY_FAV está reservado para a constante acima, logo também irá falharvar MY_FAV = 20;// isso também vai falharlet MY_FAV = 20;// É importante notar a natureza de escopo por blocoif (MY_FAV === 7) {  // não tem problema fazer isso, pois cria uma variável de bloco MY_FAV  // com escopo local (o nome MY_FAV poderia ser usado com let também)  let MY_FAV = 20;  // MY_FAV agora é 20  console.log("meu número favorito é " + MY_FAV);  // isso retorna um erro, pois tenta registrar a variável no contexto global  var MY_FAV = 20;}//MY_FAV ainda é 7console.log("meu número favorito é " + MY_FAV);// const deve ser inicializadaconst FOO; // SyntaxError: missing = in const declaration// const também funciona com objetosconst MY_OBJECT = { key: "value" };// Sobrescrever o objeto também falha (no Firefox e Chrome mas não no Safari) - Uncaught TypeError: Assignment to constant variable.MY_OBJECT = { OTHER_KEY: "value" };// Entretanto, atributos de objetos não estão protegidos,// logo a seguinte instrução é executada sem problemasMY_OBJECT.key = "otherValue"; // Utilize Object.freeze() se quiser tornar um objeto imutável// o mesmo se aplica para arraysconst MY_ARRAY = [];// É possível utilizar push para incluir itens no arrayMY_ARRAY.push("A"); //["A"]// Todavia, atribuir um novo array para a variável gera um erroMY_ARRAY = ["B"];

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-let-and-const-declarations

Compatibilidade com navegadores

Observações

Em versões anteriores do Firefox & Chrome e a partir de Safari 5.1.7 e Opera 12.00, se você define uma variável comconst, você ainda consegue alterar o valor depois. Este recurso não é suportado no Internet Explorer 6-10, mas está incluído no Internet Explorer 11.

Observações específicas para Firefox

A declaraçãoconst foi implementada no Firefox muito antes deconst aparecer na especificação ECMAScript 6. Forconst ES6 compliance seeErro do Firefox 950547 andErro do Firefox 611388.

  • Iniciando com o Gecko 36:
    • {const a=1};a passa a retornarReferenceError e não retorna1 devido block-scoping.
    • const a; passa a retornarSyntaxError ("missing = in const declaration"): É necessário incializar a constante.
    • const a = 1; a = 2; passa a retornarSyntaxError ("invalid assignment to const a").

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp