Variables globales en funciones en JavaScript
En JavaScript (en otros lenguajes generalmente no es así) las variables definidas fuera de una función, serán visibles dentro de esa función. Estas variables se llaman globales. Veamos un ejemplo:
let num = 1; // variable fuera de la función
function func() {
console.log(num); // la variable num es visible dentro de la función
}
func(); // mostrará 1
En realidad, la variable debe estar definida no antes de la definición de la función, sino antes de su llamada:
function func() {
console.log(num);
}
let num = 1; // variable fuera de la función
func(); // mostrará 1
Si cambiamos el valor de la variable y después de eso
cada vez llamamos a la función - console.log cada
vez mostrará resultados diferentes:
function func() {
console.log(num);
}
let num; // declaramos la variable
num = 1; // establecemos el valor 1
func(); // mostrará 1
num = 2; // establecemos el valor 2
func(); // mostrará 2
Si tenemos varias funciones, entonces la variable global estará disponible en cada una de estas funciones:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // mostrará 1
func2(); // mostrará 1
Si en una de las funciones ocurren cambios con la variable global, entonces esta variable cambiará en todas las funciones que utilicen esta variable:
function func1() {
console.log(num);
num++; // cambiamos la variable global
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // mostrará 1
func2(); // mostrará 2
Ya que cualquiera de las funciones fácilmente puede cambiar la variable global, su uso representa un foco de errores difíciles de detectar. Por esta razón, el uso de variables globales en el script debe reducirse al mínimo. Es deseable que no existan en absoluto o que haya la cantidad mínima posible.
Determine, sin ejecutar el código, qué se mostrará en la consola:
let num = 1;
function func() {
console.log(num);
}
func();
Determine, sin ejecutar el código, qué se mostrará en la consola:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Determine, sin ejecutar el código, qué se mostrará en la consola:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();