Const do JavaScript
- Página Anterior Let JS
- Próxima Página Operadores JS
ECMAScript 2015
ES2015 introduziu duas palavras-chave novas importantes do JavaScript:let
e const
.
Pelo const
definidas let
As variáveis definidas são semelhantes às
Exemplo
const PI = 3.141592653589793; PI = 3.14; // Dá erro PI = PI + 10; // Também dará erro
de escopo de bloco
emde escopo de blocousada const
A variável declarada é semelhante a let
As variáveis são semelhantes.
Neste exemplo, x é declarado dentro do bloco, diferente de x declarado fora do bloco:
Exemplo
var x = 10; // Aqui, x é 10 { const x = 6; // Aqui, x é 6 } // Aqui, x é 10
Você pode ver no capítulo anterior Let do JavaScript Aprendi mais sobre o escopo de bloco na escola secundária.
ao atribuir valores na declaração
JavaScript const
As variáveis devem ser atribuídas valores no momento da declaração:
Incorreto
const PI; PI = 3.14159265359;
Correto
const PI = 3.14159265359;
Não é um constante verdadeiro
Palavra-chave const
Tem um certo engano.
Ele não define um valor constante. Ele define uma referência constante ao valor.
Portanto, não podemos alterar o valor original da constante, mas podemos alterar as propriedades do objeto constante.
Valor original
Se atribuirmos um valor original a uma constante, não podemos alterar o valor original:
Exemplo
const PI = 3.141592653589793; PI = 3.14; // Dá erro PI = PI + 10; // Também dará erro
O objeto constante pode ser alterado
Você pode alterar as propriedades do objeto constante:
Exemplo
// Você pode criar objetos const: const car = {type:"porsche", model:"911", color:"Black"}; // Você pode alterar as propriedades: car.color = "White"; // Você pode adicionar atributos: car.owner = "Bill";
Mas você não pode reatribuir valor a um objeto constante:
Exemplo
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERRO
Um array constante pode ser alterado
Você pode alterar elementos de um array constante:
Exemplo
// Você pode criar um array constante: const cars = ["Audi", "BMW", "porsche"]; // Você pode alterar elementos: cars[0] = "Honda"; // Você pode adicionar elementos: cars.push("Volvo");
Mas você não pode reatribuir valor a um array constante:
Exemplo
const cars = ["Audi", "BMW", "porsche"]; cars = ["Honda", "Toyota", "Volvo"]; // ERRO
suporte do navegador
Internet Explorer 10 ou versões anteriores não suportam const
palavra-chave.
A tabela a seguir define as versões dos navegadores que suportam completamente a palavra-chave const:
Chrome 49 | IE / Edge 11 | Firefox 36 | Safari 10 | Opera 36 |
Março de 2016 | Outubro de 2013 | Fevereiro de 2015 | Setembro de 2016 | Março de 2016 |
reatribuição
Em qualquer posição do programa, é permitido redeclarar JavaScript var
variável:
Exemplo
var x = 2; // Permitido var x = 3; // Permitido x = 4; // Permitido
Não é permitido redeclarar uma variável existente dentro do mesmo escopo ou bloco: var
ou let
reatribuir valor a const
:
Exemplo
var x = 2; // Permitido const x = 2; // Não permitido { let x = 2; // Permitido const x = 2; // Não permitido }
Não é permitido redeclarar ou atribuir valor a uma variável const existente dentro do mesmo escopo ou bloco:
Exemplo
const x = 2; // Permite const x = 3; // Não permitido x = 3; // Não permitido var x = 3; // Não permitido let x = 3; // Não permitido { const x = 2; // Permite const x = 3; // Não permitido x = 3; // Não permitido var x = 3; // Não permitido let x = 3; // Não permitido }
redeclarar em outro escopo ou bloco const
É permitido:
Exemplo
const x = 2; // Permite { const x = 3; // Permite } { const x = 4; // Permite }
Promoção
Pelo var
As variáveis definidas sãoPromoçãopara o topo. Se você não entender o que é Hoisting, aprenda sobre Hoisting neste capítulo.
Você pode usar a variável var antes da declaração:
Exemplo
carName = "Volvo"; // Você pode usar carName aqui var carName;
Pelo const
As variáveis definidas não são promovidas para o topo.
const
As variáveis não podem ser usadas antes da declaração:
Exemplo
carName = "Volvo"; // Você não pode usar carName aqui const carName = "Volvo";
- Página Anterior Let JS
- Próxima Página Operadores JS