Cuando buscamos la palabra “scope” en el diccionario, nos habla de alcance, rango o ámbito y estos significados se pueden ver aplicados en javascript. En este tutorial hablaremos de scope en javascript, los tipos que existen y daremos ejemplos a lo largo de la explicación.
Al hablar del scope en javascript, nos referimos al alcance que puede tener una variable al ser referenciada o nombrada hasta que encuentra el punto exacto donde la misma fue nombrada o declarada. Imaginemos que tenemos una tienda de café y tenemos provisiones en el estante, en los cajones y en la bodega. Entonces llega el cliente número 1 y le preparamos el café que está en el estante, al llegar el cliente número 2 las existencias de café del estante se acabaron, entonces nos vamos al cajón pero no hallamos, debemos ir a la bodega para poder alcanzar el café. Al buscar el café debemos pasar por tres entornos (scopes) distintos para encontrarlo (estante => cajón => bodega). esto lo podemos ejemplificar en código javascript para hacerlo entendible

En este caso vemos como en el bloque (if) llamamos un console log referenciando la variable estante cuyo valor va a ser buscado hasta encontrarlo en los diferentes entornos (scopes). Siempre va a empezar desde el entorno más pequeño; que se encuentra resaltado en el código, y en este caso encuentra que ha sido declarado en el mismo scope.

Ahora el cliente 2 pide una taza de café pero no encontramos el café cerca y debemos ir hasta la bodega, en el código hacemos referencia al lugar donde podemos encontrar el café en el scope más pequeño o scope local (if ) y vamos a viajar por los diferentes scopes; lo que llamamos scope chain, hasta encontrar donde fue declarada la variable bodega, la encontramos en el scope global.
Ahora que la encontramos podemos hacer referencia a los términos mencionados anteriormente .
Scope global:
Este scope es accesible para todo el programa y la clave es que no está ni en bloques, ni funciones. En este caso nuestra variable bodega está en un scope global.
Scope local:
Se encuentra dentro de bloques y funciones y solo puede ser accedida por elementos dentro de ella como en el caso del cliente 1.
Scope chain:
El proceso de búsqueda desde el scope más pequeño (el estante) donde referenciamos la variable hasta que la encontramos; donde fue declarada (la bodega).
En este tutorial hablamos como las variables funcionan a través de los diferentes scopes (entornos) desde que son referenciadas o llamadas para luego ser encontradas donde fueron declaradas.
Curso Básico de Programación