JavaScript const: declarando constantes no ES6

Resumo : neste tutorial, você aprenderá como definir constantes usando a constpalavra-chave JavaScript.

Introdução à palavra-chave JavaScript const

ES6 fornece uma nova maneira de declarar uma constante usando a constpalavra-chave. A constpalavra-chave cria uma referência somente leitura para um valor.

const CONSTANT_NAME = value;Linguagem de código:  JavaScript  ( javascript )

Por convenção, os identificadores constantes estão em letras maiúsculas.

Assim como a palavra-chave let , a constpalavra-chave declara variáveis ​​de escopo bloqueado. No entanto, as variáveis ​​com escopo de bloco declaradas pela palavra-chave const não podem ser reatribuídas .

As variáveis ​​declaradas pela letpalavra-chave são mutáveis. Isso significa que você pode alterar seus valores a qualquer momento, conforme mostrado no exemplo a seguir:

let a = 10;
a = 20;
a = a + 5;
console.log(a); // 25Linguagem de código:  JavaScript  ( javascript )

Porém, as variáveis ​​​​criadas pela constpalavra-chave são “imutáveis”. Em outras palavras, você não pode reatribuí-los a valores diferentes.

Se você tentar reatribuir uma variável declarada pela constpalavra-chave, obterá algo TypeErrorassim:

const RATE = 0.1;
RATE = 0.2; // TypeErrorLinguagem de código:  JavaScript  ( javascript )

Ao contrário da palavra-chave let, você precisa inicializar o valor para a variável declarada pela palavra-chave const.

O exemplo a seguir causa um SyntaxErrorerro devido à falta do inicializador na constdeclaração da variável:

const RED; // SyntaxErrorLinguagem de código:  JavaScript  ( javascript )

Const JavaScript e objetos

A constpalavra-chave garante que a variável que ela cria seja somente leitura. No entanto, isso não significa que o valor real ao qual a constvariável faz referência seja imutável. Por exemplo:

const person = { age: 20 };
person.age = 30; // OK
console.log(person.age); // 30Linguagem de código:  JavaScript  ( javascript )

Mesmo que a personvariável seja uma constante, você pode alterar o valor de sua propriedade.

No entanto, você não pode reatribuir um valor diferente à personconstante assim:

person = { age: 40 }; // TypeError
Linguagem de código:  JavaScript  ( javascript )

Se você quiser que o valor do  personobjeto seja imutável, você deve congelá-lo usando o Object.freeze()método:

const person = Object.freeze({age: 20});
person.age = 30; // TypeErrorLinguagem de código:  JavaScript  ( javascript )

Observe que Object.freeze()é superficial, o que significa que pode congelar as propriedades do objeto, não os objetos referenciados pelas propriedades.

Por exemplo, o company objeto é constante e congelado.

const company = Object.freeze({
    name: 'ABC corp',
    address: {
        street: 'North 1st street',
        city: 'San Jose',
        state: 'CA',
        zipcode: 95134
    }
});Linguagem de código:  JavaScript  ( javascript )

Mas o company.addressobjeto não é imutável, você pode adicionar uma nova propriedade ao company.addressobjeto da seguinte forma:

company.address.country = 'USA'; // OKLinguagem de código:  JavaScript  ( javascript )

Const JavaScript e matrizes

Considere o seguinte exemplo:

const colors = ['red'];
colors.push('green');
console.log(colors); // ["red", "green"]

colors.pop();
colors.pop();
console.log(colors); // []

colors = []; // TypeErrorLinguagem de código:  JavaScript  ( javascript )

Neste exemplo, declaramos um array colorsque possui um elemento usando a constpalavra-chave. Então, podemos alterar os elementos do array adicionando a greencor. No entanto, não podemos reatribuir o array colorspara outro array.

JavaScript constem forloop

ES6 fornece uma nova construção chamada for...ofque permite criar um loop iterando sobre objetos iteráveis, como arrays , mapas e conjuntos .

let scores = [75, 80, 95];

for (let score of scores) {
	console.log(score);
}Linguagem de código:  JavaScript  ( javascript )

Se você não pretende modificar a scorevariável dentro do loop, você pode usar a constpalavra-chave:

let scores = [75, 80, 95];
for (const score of scores) {
    console.log(score);
}Linguagem de código:  JavaScript  ( javascript )

Neste exemplo, for...of   cria uma nova ligação para a constpalavra-chave em cada iteração do loop. Em outras palavras, uma nova scoreconstante é criada a cada iteração.

Observe que o constnão funcionará em um loop for imperativo . Tentar usar a constpalavra-chave para declarar uma variável no forloop imperativo resultará em TypeError:

for (const i = 0; i < scores.length; i++) { // TypeError
    console.log(scores[i]);
}Linguagem de código:  JavaScript  ( javascript )

A razão é que a declaração é avaliada apenas uma vez antes do início do corpo do loop.

Resumo

  • A constpalavra-chave cria uma referência somente leitura para um valor. A referência somente leitura não pode ser reatribuída, mas o valor pode ser alterado.
  • As variáveis ​​declaradas pela palavra-chave const têm escopo bloqueado e não podem ser declaradas novamente.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *