Home » JavaScript » La diferencia entre variables locales y globales

La diferencia entre variables locales y globales

La única diferencia entre una variable local y una global es su ámbito de acción.

  • Variable local: es aquella que sólo es utilizable dentro del código de la función.
  • Variable global: es aquella cuyo ámbito es todo el programa, incluso dentro de una función.
Dicho de otro modo:
Una variable declarada dentro de una función es una variable de tipo local que sólo existe dentro del contexto de la función. Por contrapartida, una variable global tiene un ámbito de todo el programa (incluso dentro de las funciones). Esto quedará claro con este ejemplo:
 
 function calculaIVA(val1, valIva){
     var iParcial = val1 * valIva / 100; // calcula 320
    document.write ("Valor del IVA ", iParcial);  // imprime 320
 }
 var iTotal= 2000;
 var iParcial = 0; // Es Global
   
 document.write("Precio sin IVA es ", iTotal, "<BR />"); // imprime 2000
 calculaIVA(iTotal, 16);
 document.write("Precio con IVA es ", iTotal + iParcial, "<BR />"); // imprime 2000!!!
 
En este ejemplo queda claro que la variable iParcial (local) y la variable iParcial (global) son dos variables diferentes.
La función actualiza la variable local y esto produce que la suma iTotal + iParcial no diese el valor correcto (2320).
 
Este error se resuelve simplemente eliminando la definición de la variable local iParcial en la función:
 
    iParcial = val1 * valIva / 100; 
// calcula 320 sobre la variable Global (sin var)
 
Los  parámetros de una función se tratan como variables locales de la función; veamos qué sucede si se modifica el valor de un parámetro dentro de la función:
 
 function calculaIVA(iTotal, valIva){
        iParcial = iTotal * valIva / 100;
        iTotal = "destruyo su valor para ver consecuencias";
        document.write ("Valor del IVA ", iParcial); 
 }
  var iTotal= 2000;
  var iParcial = 0;
   
  document.write("Precio sin IVA es ", iTotal, "<BR />"); // 2000
  calculaIVA(iTotal, 16); // se pasa la variable iTotal
  document.write("Precio con IVA es ", iTotal + iParcial,"<BR />"); //2320
Tal como se puede observar al ejecutar este código en el navegador, la variable iTotal mantiene su valor 2000 ya que se obtiene el valor correcto (2320).
Otro tipo de variable: una variable puede representar a un objeto. En el capítulo siguiente trataremos esto al estudiar  la programación orientada a objetos.
 
  
izq sup der

Deja un comentario