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