Junior — Middle
Quais são as diferenças entre declarar variáveis usando let e var em JavaScript?
sobes.tech IA
Resposta da IA
As variáveis declaradas com var têm escopo de função (function scope), enquanto que let possui escopo de bloco (block scope). Isto significa que uma variável com let está disponível apenas dentro das chaves mais próximas, por exemplo, dentro de um ciclo ou condição.
Além disso, var é elevada (hoisting) e inicializada com o valor undefined antes da execução do código, enquanto que let também é elevada, mas não é inicializada; tentar aceder à variável antes da sua declaração provocará um erro (Zona Morta Temporal).
Exemplo:
function test() {
console.log(a); // undefined
// console.log(b); // ReferenceError
var a = 1;
let b = 2;
}
Também, var permite redeclarar a mesma variável na mesma área de escopo, o que pode levar a erros, enquanto que let não.