En este reto pondrás en práctica los conceptos de scope en JavaScript. Aprenderás cómo funcionan los ámbitos global, de función y de bloque, entenderás el hoisting con var, y practicarás el manejo de errores al intentar acceder a variables fuera de su alcance.
Abre el archivo challenge.js y completa cada función según las indicaciones en los comentarios.
| # | Función | Qué practicas |
|---|---|---|
| 1 | accederGlobal() |
Acceder a variables desde el scope global |
| 2 | scopeFuncion() |
Declarar y acceder a variables locales de función |
| 3 | scopeBloque() |
Declarar variables con let dentro de bloques |
| 4 | accesoAnidado() |
Acceder a variables de diferentes scopes anidados |
| 5 | errorScope() |
Manejar errores al acceder a variables fuera de alcance |
| 6 | returnVsConsole() |
Diferenciar entre console.log y return |
| 7 | demostrarHoistingVar() |
Entender el hoisting con var |
| 8 | templateLiteralsScope() |
Usar template literals con variables de diferentes scopes |
- Scope global: Variables accesibles desde cualquier parte del programa.
- Scope de función: Variables accesibles solo dentro de la función donde se declaran.
- Scope de bloque: Variables (con let/const) accesibles solo dentro de llaves
{}. - Hoisting: Las declaraciones con
varse "elevan" al inicio del scope con valorundefined. - Error de ReferenceError: Ocurre cuando intentas acceder a una variable fuera de su scope.
- console.log vs return:
console.logmuestra en consola pero no afecta el valor retornado.
Asegúrate de tener las dependencias instaladas:
npm installEjecuta los tests para verificar tu solución:
npx vitest src/14-scope-javascriptO en modo watch para desarrollo:
npx vitest --watch src/14-scope-javascriptTodos los tests deben pasar en verde para completar el reto.