🔤Declaração de Variáveis

Introdução às formas de declarar variáveis em JavaScript: var, let, e const. Explicação das características, escopo, hoisting e melhores práticas de uso para cada uma.

Introdução

Em JavaScript, há três maneiras principais de declarar variáveis: var, let, e const. Cada uma tem suas próprias características e melhores práticas de uso. Vamos explorar cada uma delas em detalhes.


Tipos de Declaração

1. var

Características:

  • Escopo de Função: Variáveis declaradas com var têm escopo de função, o que significa que são acessíveis dentro da função onde foram declaradas.

  • Hoisting: Variáveis var são elevadas (hoisted) ao topo de seu contexto de execução. No entanto, sua inicialização não é elevada.

Exemplo:

function exemploVar() {
    console.log(a); // undefined
    var a = 10;
    console.log(a); // 10
}

exemploVar();

No exemplo acima, a declaração de a é elevada ao topo da função, mas a inicialização (a = 10) permanece no local original.

Uso Comum:

Antes do ES6, var era a única maneira de declarar variáveis. Hoje, é geralmente recomendado evitar var em favor de let e const para evitar problemas de escopo e hoisting.

2. let

Características:

  • Escopo de Bloco: Variáveis declaradas com let têm escopo de bloco, o que significa que são acessíveis apenas dentro do bloco {} onde foram declaradas.

  • Não permite redeclaração: Uma variável declarada com let não pode ser redeclarada no mesmo escopo.

Exemplo:

function exemploLet() {
    let a = 10;
    if (true) {
        let a = 20;
        console.log(a); // 20
    }
    console.log(a); // 10
}

exemploLet();

No exemplo acima, a dentro do bloco if é uma variável diferente de a fora do bloco if.

Uso Comum:

let é ideal para variáveis que precisam ter seus valores reatribuídos e cujo escopo deve ser limitado ao bloco onde foram declaradas.

3. const

Características:

  • Escopo de Bloco: Como let, variáveis declaradas com const têm escopo de bloco.

  • Imutável: Uma vez atribuído um valor a uma variável const, ele não pode ser reatribuído. No entanto, objetos e arrays declarados com const podem ser modificados.

Exemplo:

function exemploConst() {
    const a = 10;
    // a = 20; // Erro: Assignment to constant variable.

    const arr = [1, 2, 3];
    arr.push(4);
    console.log(arr); // [1, 2, 3, 4]
}

exemploConst();

No exemplo acima, variável a não pode ser alterada, mas os elementos do array arr podem ser modificados.

Uso Comum:

const é ideal para variáveis que não devem ser reatribuídas, como valores constantes ou referências a objetos e arrays que serão modificados internamente.


Comparação e Boas Práticas

  1. Escopo:

    • var: Função

    • let e const: Bloco

  2. Redeclaração:

    • var: Permitida

    • let e const: Não permitida no mesmo escopo

  3. Hoisting:

    • var: Declarada e inicializada como undefined

    • let e const: Declaradas, mas não inicializadas

  4. Mutabilidade:

    • var e let: Pode ser reatribuído

    • const: Não pode ser reatribuído, mas objetos e arrays podem ser modificados

Boas Práticas

  • Prefira const sempre que possível. Use let quando souber que a variável precisa ser reatribuída.

  • Evite var para evitar problemas de escopo e hoisting.

Atualizado

Isto foi útil?