¡Bienvenidos! En esta lección vamos a aprender acerca de un importante concepto de JavaScript llamado scope (alcance). ¿Qué es el scope (alcance)? El scope implica el acceso a las variables, a qué variables podemos acceder mientras el código se está ejecutando.
Por defecto en JavaScript nos encontramos en el root scope (alcance raíz), el cual es el objeto window. Veamos de qué estamos hablando.
Ahora la función aa() es parte del alcance (scope) del objeto window.
Vemos que la función aa() ha sido añadida al alcance del objeto window.
Veamos otro ejemplo.
Vemos que la función bb() se encuentra dentro del alcance del objeto window.
Ahora intentemos imprimir el contenido de la variable a.
Vemos que esto nos devuelve un error. Esto se debe a que la variable a solo vive dentro de la función bb(), por lo que podemos decir que su alcance está dado dentro de la función bb(). Por lo que la única que forma en la que podemos imprimir el contenido de la variable a, es si lo hacemos dentro de la función bb().
Lo interesante de esto es que las funciones tienen acceso a cualquier variable en el root scope (alcance de la raíz). Veamos un ejemplo.
Ahora veamos que podemos cambiar el variable de una variable con alcance en la raíz a través de una asignación dentro de una función.
Ahora probemos definir varias veces el mismo nombre de variable, y usarlo en el distintos alcances.
Como podemos ver, la variable cambia su valor dentro de cada una de las funciones. En el caso de las funciones que añaden la palabra var, esa variable creada no afecta al valor de la variable creada en el alcance de la raíz.
Esto se conoce como conflicto de nombres, por lo que se recomienda nombrar de manera distinta a distintas variables. En cambio en el caso de la tercer función, esta no define una nueva variable sino que modifica el valor de la variable definida en la raíz.
Bueno, eso fue todo por esta lección.
Nos vemos en la siguiente.
¡Adios!