martes, 23 de julio de 2019

JavaScript ámbito de las variables

Existen variables globales y variables locales. Las variables globales tienen su ámbito de actuación en todo el procedimiento, por el contrario las variables locales únicamente están disponibles dentro de la función en la que están definidas.

Variable global actuando dentro de una función


  • Declaramos la variable global texto que contiene el string Hola.
  • Llamamos a la función genera y le pasamos el parámetro texto.
  • La función modifica la variable texto añadiendo la palabra mundo.
  • La función imprime por consola la variable texto que será: Hola mundo
  • Finalmente, fuerea de la la función, como última línea de código imprimimos la variable texto y vemos que es igual a Hola. Esto quiere decir que la modificación que se hizo de la variable texto dentro de la función no ha salido al ámbito global.


https://repl.it/@valoro/JS-variables-globales-y-locales1

 'use strict'  
 function genera(texto){  
  var texto=texto+" mundo";  
  console.log(texto);  
 }  
 var texto="Hola";  
 genera(texto);  
 console.log(texto);  


La variable local sale con return


  • Declaramos dos variables locales (a y b) dentro de la función. Usando return sacamos una de ellas, pero la otra no.
  • Ejecutamos la función y su resultado se asigna a la variable x, que es una variable global, porque está definida fuera de la función. La variable x recibe lo que la función devuelve por return con lo que hemos conseguido sacar fuera el valor de la variable locar a que es 100.
  • Se imprime x por pantalla y se obtienen 100.
  • Si intentamos imprimir fuera de la función la variable b, que es una variable local, obtendremos un error puesto que esta variable no está definida fuera del ámbito de actuación de la función.


https://repl.it/@valoro/JS-variables-globales-y-locales2

 'use strict'  
 function muestra(){  
  var a=100;  
  var b=200;  
  return a;  
 }  
 var x=muestra();  
 console.log(x);  
 //console.log(b); //esta expresión da erro porque b es una variable local  


Devolver más de un valor con return

Si necesitamos devolver más de un número o string con return podemos hacerlo devolviendo un array, esto es, una lista que contenga varios elementos.

En el siguiente ejemplo vamos a generar una lista de n posiciones que contenga números aleatorios. La función devuelve esa lista con un return y calcula sus cuadrados.


https://repl.it/@valoro/JS-variables-globales-y-locales3


 'use strict'  
 function define(n){  
  var lista=[];  
  for(var i=0;i<n;i++){  
   lista.push(Math.floor(Math.random()*(20-2))+2);  
  }  
  console.log(lista);  
  return lista  
 }  
 var milista=define(5);  
 console.log('Cuadrados');  
 console.log(milista.map(n => Math.pow(n,2)));  


No hay comentarios:

Publicar un comentario