Qual é a diferença entre declaração de variáveis usando 'let' e 'var'?
A diferença principal entre declarar uma variável usando let
e var
está na forma como elas são escopadas.
Quando declaramos uma variável usando let
, ela é limitada ao escopo do bloco em que foi definida. Isso significa que ela só pode ser acessada dentro desse bloco e não será visível fora dele. Por exemplo:
function exemplo() {
let x = 5;
if (true) {
let y = 10;
console.log(x); // 5
console.log(y); // 10
}
console.log(x); // 5
console.log(y); // Erro: y não está definido
}
No exemplo acima, a variável x
foi declarada dentro da função, então ela é visível em qualquer lugar dentro dessa função, mas a variável y
foi declarada dentro do bloco if
, então ela só é visível dentro desse bloco.
Já quando declaramos uma variável usando var
, ela tem escopo de função. Isso significa que ela pode ser acessada em qualquer lugar dentro da função, independentemente do bloco em que foi definida. Por exemplo:
function exemplo() {
var x = 5;
if (true) {
var y = 10;
console.log(x); // 5
console.log(y); // 10
}
console.log(x); // 5
console.log(y); // 10
}
Nesse caso, tanto a variável x
quanto a variável y
são visíveis em qualquer lugar dentro da função exemplo
.
É importante ressaltar que, a partir do ECMAScript 6, é recomendado o uso de let
em vez de var
, principalmente para evitar problemas de poluição do escopo global e bugs relacionados à reatribuição acidental de variáveis.