Hoy hablaremos sobre un tema que es un poco complicado entender pero que con la práctica se mejora, el alcance en JavaScript es un concepto base de dicho lenguaje nos permite realizar un código más legible y optimizado a la hora de programar además de poner restricciones de acceso a características especiales que no queremos ver afectadas durante la ejecución del mismo.
¿Qué es el Scope en JS?
Para poder entender que es el Scope en Java Script vamos definir las asignaciones de las variables que se pueden usar en Java Script. Tomando en cuenta que son case-sensitive y que el lenguaje es débilmente tipado.
¿Scope?
La palabra en términos de referencia y traducción significa “Alcance”, del cual tomaremos el concepto para definir el privilegio de accesos de una variable en un código de programación, esto hace que sea por obligación una buena práctica de codificación ya que hacemos uso de diferentes jerarquías de accesos en nuestra variables y funciones.
¿Cómo y cuándo se usan?
Para definirlas normalmente se usa la escritura camel case la cual nos explica que se escribe la primera letra en minúsculas y si cuenta con otra palabra la siguiente se escribirá con mayúscula y sin espacio entre las mismas.
Ejemplo: var primerNombre = “Karla”;
Tenemos tres declaraciones diferentes
Let
La declaración let se realiza dentro de un bloque de programa y su alcance será el bloque más próximo.

VAR
La declaración var se puede realizar dentro de un bloque o de una función del programa y su alcance estar hasta una función más próximo, incluso si esta está dentro de un bloque de programación. También se defino su alcance hacia un scope global de una función dentro de la cual está declarada.

CONST
La declaración const se puede realizar dentro de un bloque o función y su alcance será al bloque más próximo además de que su valor no podrá ser alterado.

Global scope
Donde la variable definida puede ser manipulada por cualquier función dentro del programa (no recomendable definir variables globales)

LOCAL SCOPE
La variable definida solo puede ser usada por la función local

Si usamos let esta tendrá alcance al bloque más próximo de programación

GLOBAL SCOPE AUTOMATIC
Una variable que no esté asignada a ningún tipo de declaración será automáticamente de acceso global

Block Scope
Se definen dentro de un bloque, pero su alcance dependerá del modo en el que la variable se este usando.

LEXICAL SCOPE
Las funciones anidadas se presentan a modo de jerarquías donde podemos observar cómo se pueden acceder a los valores dependiendo de su jerarquía.

STRICT MODE
Gracias a la directiva descrita en la versión de EcmaScript 5 el programa nos da una restricción la cual debe especificar como está definiendo dicha variable.

Entender el alcance de una variable dentro de nuestros bloques de código nos evitará errores a futuro, debido a que podemos definir qué cambios hará dicha variable dentro de un bloque de programación. Se aconseja usar let para variables cuyo valor cambiara durante el programa en ejecución y const para definir variables fijas, y evitar en lo posible el uso de la definición var.
Enlaces de interés
https://developer.mozilla.org
Developer Mozilla
https://www.w3schools.com/js/js_variables.asp
“Es fácil extraer la aguja del pajar si usas un potente imán…”