¿Que es Scope en JavaScript?

scope_javascript_feature_image

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.

Scope_en_java_let_var

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.

Scope_en_java_var_var

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.

Scope_en_java_const_var

Global scope

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

Scope_en_java_Global

LOCAL SCOPE

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

Scope_en_java_local

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

Scope_en_java_index

GLOBAL SCOPE AUTOMATIC

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

Scope_en_java_cont

Block Scope

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

Scope_en_java_block

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.

Scope_en_java_block_2

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.

Scope_en_java_strict

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…”