Avatar ·

¿Cuál es la diferencia entre let y var en JavaScript? Explique con ejemplos

¡Hola! Empecé a estudiar JavaScript y me encontré con confusión. Sé que antes todos declaraban variables con `var`, pero ahora en los tutoriales modernos recomiendan `let`. Parece que ambos hacen lo mismo: crean variables. Pero cuando escribo código, se comportan de manera diferente. Aquí hay un ejemplo que me desconcertó: ```javascript var x = 10; if (true) { var x = 20; // Pensé que era una nueva variable console.log(x); // 20 } console.log(x); // 20 — ¿por qué no 10? ``` Si reemplazo `var` por `let`: ```javascript let x = 10; if (true) { let x = 20; console.log(x); // 20 } console.log(x); // 10 — aquí sí es 10, como se esperaba ``` ¿Por qué sucede esto? También escuché sobre "hoisting" (elevación) — ¿tiene algo que ver? Explique, por favor, para un principiante, cuándo usar `let` y cuándo `var`, y cuáles son las diferencias clave. Es importante que lo entienda para no cometer errores en el futuro. <<>>

Diferencias principales: scope, hoisting y redeclaración