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;