Let JS

A let palavra-chave foi introduzida em ES6 (2015)

Variáveis definidas com let não podem ser redeclaradas.

As variáveis definidas com let devem ser declaradas antes do uso.

As variáveis definidas com let têm Bloco de Escopo.

Não pode ser redeclarado

Variáveis definidas com let não podem ser declaradas novamente.

Você não pode redeclarar acidentalmente uma variável.

Com let, você não pode fazer isso:

Exemplo:


    let x = "John Doe";
    let x = 0;
    // SyntaxError: 'x' has already been declared
    

Com var você pode:

Exemplo:


    var x = "John Doe";
    var x = 0;
    

Escopo do Bloco

Antes do ES6 (2015), JavaScript tinha apenas escopo global e escopo de função.

ES6 introduziu duas novas palavras-chave JavaScript importantes: let e const.

Essas duas palavras-chave fornecem Block Scope em JavaScript.

Variáveis declaradas dentro de um bloco {} não podem ser acessadas de fora do bloco:

Exemplo:


    {
    let x = 2;
    }
    // x can NOT be used here
    

Variáveis declaradas com a var palavra - chave NÃO podem ter escopo de bloco.

Variáveis declaradas dentro de um bloco {} podem ser acessadas de fora do bloco.

Exemplo:


    {
      var x = 2;
    }
    // x CAN be used here
    

Variáveis de redeclaração

Redeclarar uma variável usando a var palavra - chave pode causar problemas.

Redeclarar uma variável dentro de um bloco também redeclarará a variável fora do bloco:

Exemplo:


    var x = 10;
    // Here x is 10

    {
    var x = 2;
    // Here x is 2
    }

    // Here x is 2
    

Redeclarar uma variável usando a let palavra - chave pode resolver esse problema.

Redeclarar uma variável dentro de um bloco não redeclarará a variável fora do bloco:

Exemplo:


    let x = 10;
    // Here x is 10

    {
    let x = 2;
    // Here x is 2
    }

    // Here x is 10
    

Suporte para navegador

A let palavra-chave não é totalmente compatível com o Internet Explorer 11 ou anterior.

A tabela a seguir define as primeiras versões do navegador com suporte total para a let palavra-chave:

Chrome 49 Edge 12 Firefox 44 Safari 11 Opera 36
Mar, 2016 Jul, 2015 Jan, 2015 Sep, 2017 Mar, 2016

Redeclarando

Redeclarar uma variável JavaScript com var é permitido em qualquer lugar em um programa:

Exemplo:


    var x = 2;
    // Now x is 2

    var x = 3;
    // Now x is 3
    

Com let, NÃO é permitido redeclarar uma variável no mesmo bloco:

Exemplo:


    var x = 2;    // Allowed
    let x = 3;    // Not allowed

    {
    let x = 2;    // Allowed
    let x = 3     // Not allowed
    }

    {
    let x = 2;    // Allowed
    var x = 3     // Not allowed
    

Redeclarar uma variável com let, em outro bloco, é permitido:

Exemplo:


    let x = 2;    // Allowed

    {
    let x = 3;    // Allowed
    }

    {
    let x = 4;    // Allowed
    }
    

Vamos içar

As variáveis definidas com varsão içadas para o topo e podem ser inicializadas a qualquer momento.

Significado: você pode usar a variável antes de ser declarada:

Exemplo:


    carName = "Volvo";
    var carName;
    

Se você quiser aprender mais sobre içamento, estude o capítulo içamento JavaScript.

Variáveis definidas com let também são içadas para o topo do bloco, mas não inicializadas.

Significado: Usar uma let variável antes de ser declarada resultará em ReferenceError:

Exemplo:


    carName = "Saab";
    let carName = "Volvo";
    

CODE GAME | Play Game

Code Game: Help the Lynx collect pine cones!

Fonte: w3schools