En pocas palabras, estos terminos se definen como:
- Scope determina la accesibilidad que tiene una variable, función u objeto en el programa dependiendo de su ámbito (Global, Local o block scope)
- Global Scope: Variables declaradas en la parte superior del programa
- Local/Function Scope: Variables declaradas dentro de las funciones o bloques de código
{}
(como las condicionales, bluces, etc) - Block Scope: Son variables
let
y const
que dependen en donde se declaren.
- Closure es cuando una función accede a una variable fuera de su contexto y recuerda el estado de esa variable
- Hosting las declaraciones de variables y funciones se “mueven” a la parte superior de su ámbito durante la fase de compilación.
Los conceptos como Closure o Hosting pueden variar de un lenguaje a otro. Pero en el caso del scope (ámbito de una variable) es fundamental en la mayoría de los lenguajes de programación, ya que define el alcance de una variable, función u objeto es accesible y cuándo deja de serlo ⭐
Hoisting*