Las variables en JavaScript

JavaScript define tres tipos básicos de valores : números, cadenas de texto y booleanos (true/false). Además incorpora los valores especiales: null , undefined y NaN.

Las variables no necesitan ser declaradas y pueden almacenar cualquier tipo de dato de forma dinámica:

cadena =»Esto es una cadena de texto»;
cadena = 22; // ahora cadena vale 22

El tipo de dato que almacena una variable se resuelve según el contexto. Por ejemplo, si se utiliza el operador suma (+) mezclando cadenas de caracteres con valores numéricos, el resultado es una cadena:

cadena = «El número es «;
numero = 22;
resultado = cadena + numero; // El número es 22

Si la cadena de texto representa un número y el operador es distinto de (+), JavaScript intentará realizar la operación especificada:

cadena = «42»;
numero = 10;
resultado = cadena – numero; // 32

Y devolverá error en caso de que la operación no tenga sentido:

cadena = «cadena»;
numero = 10;
resultado = cadena – numero; // NaN

Es recomendable declarar las variables antes de utilizarlas:

var cadena; // contiene ‘undefined’

Ya que una variable no declarada implícita o explícitamente provocará un error de ejecución si se utiliza en una expresión:

// cadena no ha sido inicializada ni declarada explícitamente
resultado = cadena + 1; // error (cadena no está definida)
resultado = cadena + «_1» // error (cadena no está definida)

Sin embargo, si ‘cadena‘ ha sido declarada, la expresión se evalúa y dará como resultado ‘NaN‘ para el primer caso y ‘undefined_1‘ para el segundo (concatena ‘undefined‘ con ‘_1‘).

También tiene importancia la declaración de las variables a la hora de considerar su alcance y visibilidad. Las variables declaradas fuera de una función son consideradas globales al programa (documento). Para utilizar una variable local que utiliza el mismo nombre que una variable global es necesario declarar la primera de forma explícita con ‘var‘.

cadena = «hola»;

function f ()
{
resultado = cadena + «, un saludo»; // «hola, un saludo»
cadena = «Hasta luego»; // cambia el valor de la variable global
}

function ff ()
{
var cadena;
cadena = 1; // cadena (local) vale 1
// cadena (global) vale «hola»
}

Las variables globales a nivel de documento pueden ser accesibles desde otros documentos (ventanas o frames del navegador) utilizando el nombre del documento y el operador de acceso:

resultado = ventana1.cadena + ventana2.cadena;

En el caso de un FRAMESET, los programas que se ejecutan en los frames pueden acceder a las variables globales de dicho FRAMESET utilizando el especificador ‘parent‘:

resultado = ventana1.cadena + parent.cadena;

Artículo (C) Epsilon Eridani.