Quais as diferenças entre let e var em JavaScript? Explique com exemplos
Olá! Comecei a estudar JavaScript e me deparei com uma confusão. Eu sei que antes todos declaravam variáveis com `var`, mas agora nos tutoriais modernos recomendam `let`. Aparentemente ambos fazem a mesma coisa — criam variáveis. Mas quando escrevo código, eles se comportam de forma diferente.
Aqui está um exemplo que me deixou confuso:
```javascript
var x = 10;
if (true) {
var x = 20; // Eu pensei que era uma nova variável
console.log(x); // 20
}
console.log(x); // 20 — por que não 10?
```
Se eu substituir `var` por `let`:
```javascript
let x = 10;
if (true) {
let x = 20;
console.log(x); // 20
}
console.log(x); // 10 — e aqui 10, como esperado
```
Por que isso acontece? E também ouvi falar sobre "hoisting" — isso também tem relação? Explique, por favor, para um iniciante, quando usar `let` e quando usar `var`, e quais são as principais diferenças. É importante para mim entender isso para não cometer erros no futuro.
<<>>