Avatar ·

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. <<>>

Principais diferenças: escopo, hoisting e redeclaração