Scope de las variables en javascript

Scope de las variables en javascript

Print Friendly, PDF & Email
Scope de las variables en javascript
Valora esta entrada
En esta entrada vamos a hablar sobre el ámbito (scope) de las variables en javascript. Voy a suponer que ya sabes declarar y usar funciones y que  también tienes claro el concepto de variable y su sintaxis en js.

A modo de repaso recordemos que en este lenguaje de programación no es obligado declarar las variables. Y que en caso de hacerlo usamos la palabra reservada var.

Si ves que tienes un poco oxidados los conceptos anteriores entonces es el momento de dar un buen repaso. Quien mucho abarca poco aprieta.

Variables locales y variables globales

Una variable global se puede usar en cualquier lugar del script.

Una variable local sólo tiene validez dentro del ámbito de una función.

Las normas que aplican para definir el tipo de variable que estamos usando se resumen con 3 normas sencillas:

  1. Cualquier variable declarada o no declarada en la raíz de un script es siempre de ámbito global.
  2. Cualquier variable declarada dentro de una función es de ámbito local.
  3. Una variable NO declarada dentro de una función adquiere ámbito global.

Estas normas en realidad tienen su lógica. Javascript siempre aplica el caso más restrictivo y de mayor eficiencia de recursos de memoria consumidos.

En caso de duda, que es cuando la variable no ha sido declarada en un ámbito determinado, la variable adquiere comportamiento global.

Casos de uso de las propiedades del ámbito de las variables

En javascript se pueden dar algunos casos curiosos:

  • Dentro de una función podemos sobreescribir el valor de una variable global. Esto puede suceder por ejemplo por error si nos hemos olvidado de declarar una variable… y cargarnos un dato externo a la función sin darnos cuenta.
  • O también podemos usar la propiedad anterior a propósito para ahorrarnos líneas de código en un programa. Imaginar una pelota definida por una variable de tipo objeto que almacena dos propiedades que corresponden a las coordenadas x y en la pantalla. Cuando el usario pulse una determinada tecla activaremos una función que modificará la posición de la pelota. Si pulsa otra letra del teclado activará otra función que también modifique las coordenadas y así sucesivamente. Mediante una variable global usada dentro de las funciones activadas por cada tecla podemos actualizar cada vez las coordenadas de la variable de la pelota sin necesidad de más líneas de código.
  • Cuando declaramos una variable local con el mismo nombre que una variable global, temporalmente la variable local tiene prioridad sobre la global. Dentro de la función usaremos la variable local. Deberemos tratarlas como si temporalmente la variable global hubiera dejado de existir para nosotros.
  • Recordar que una variable declarada dentro de los paréntesis de declaración de la función se considera declarada de tipo local y que por cuestiones de sintaxis nunca va acompañada de la palabra reservada var.

Ejercicios

Para terminar con el escrito de hoy te propongo que dados los 2 ejercicios siguientes expliques paso a paso que valores toma cada variable del script en cada instante.

ejercicio scope javascript 01
ejercicio scope javascript 01
ejercicio scope javascript 02
ejercicio scope javascript 02

Entradas relacionadas:

Ejercicio JS – Ventana emergente control de edad
- 112
Ejercicio javascript que regula el control de accesos a una página web según edad del visitante. Incluye solución.
Ejercicio – corrección de errores en javascript. Variables y strings.
- 155
En este ejercicio practicamos la diferencia entre usar un string y una variable. También otras normas básicas de sintaxis de javascript.
Ejercicio – ¿En qué día de la semana estamos?
- 155
Problema javascript que devuelve en formato texto el día de la semana en el que esamos. Incluye 2 posibles soluciones con switch() y array.
Ejercicio JS: Uso de length y acceso a las posiciones de un array.
- 192
En este ejercicio se practica el método length y se usa para jugar con los arrays y acceder al primer elemento y al último de un vector.
Factores que afectan al tiempo de carga de una página web
- 356
Resumimos los principales factores que deberemos tener en cuenta desde el punto de vista de alguien que ha estudiado un curso de confección y publicación de páginas web para la optimización y mejora d...
Como contar vocales y espacios en blanco en un texto mediante javascript
- 221
Ejercicio con solución dónde se muestra como hacer un script que cuenta todas las vocales y espacios en blanco de un texto introducido por el usario.
Como hacer una lista de la compra con Javascript
- 101
Ejercicio lista de la compra con Javascript. Incluye solución. Se practica la creación y eliminación de nodos, this, addEventListener, ...
Instrucciones básicas para familiarizarse con javascript
- 606
El javascript es un lenguaje que se olvida a una velocidad de vértigo si no se practica. Es importante tener unos buenos apuntes 😉 Hoy presento instrucciones básicas que sirven para empezar con scrip...
Como programar la ley de cookies con Javascript
- 46
Ejercicio de programación de una venta emergente con el mítico mensaje de Ley de Cookies. Paradójicamente hay que usar una cookie para cumplir con la ley de cookies. Incluye solución.
Función que crea un objeto y lo almacena en una lista en Javascript
- 573
Javascript es un lenguaje basado en el uso de objetos. Los objetos son recursos que nos permiten agrupar un conjunto de propiedades alrededor de una idea común. Un constructor es un tipo especial de f...
Francesc Ricart
hola@francescricart.com

Soy un ingeniero industrial a quién le apasiona aprender y enseñar. En el mundo del marketing online he encontrado una de mis pasiones. Ejerzo como docente ocupacional y privado para empresas. Y también hago consultoría web para PIMES, autónomos y otros emprendedores como yo. Ayudo a las empresas en cualquier temática relacionada con su presencia digital y herramientas web. Aunque mi especialidad es el posicionamiento en buscadores (SEO). A nivel de formación lo que más feliz me hace es que un alumno haga de mi pasión una forma de vida y le ayude a encontrar trabajo. A nivel de negocios ayudo a empresarios a desenvolverse con soltura en el mundo digital y les animo a hacer cada vez más cosas que nunca hubieran imaginado que ellos también podían hacer. En este camino les ayudo haciendo todo aquello dónde ellos no llegan y crecemos juntos. Encontraréis más acerca de mi en la página sobre mi

No hay comentarios

Escribir un comentario

  Acepto la política de privacidad

Responsable: FRANCESC RICART MUÑOZ.

Finalidad: Gestionar los comentarios que realizas en este blog.

Destinatarios: No se cederán datos a terceros, salvo obligación legal.

Derechos: Tienes derecho a acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la política de privacidad.