Ir directamente al contenido de esta página
Una variable no es más que un contenedor para un valor. Las variables se declaran por medio de la palabra clave var
, pero a diferencia de otros lenguajes de programación en JavaScript no es necesario declarar su tipo. Unas líneas como éstas:
var a = 15;
var b = "gato";
Crea unas variables llamadas a
y b
que inicialmente tienen los valores de 15 y la palabra «gato» respectivamente.
Las únicas limitaciones a la hora de crear variables son:
_
) y el símbolo de dolar ($
); el resto de los caracteres puede ser cualquier combinación de los anteriores, además de cifras. Así, registro_01
, $vínculos
, listaNodos
o _cuñao
1 son nombres correctos; 1_lista_de_cosas
, elementos-lista
o nuevo%elemento
no.Hay una serie de convenciones — con nombres curiosos— para nombrar variables:
listaCamposFormulario
.ListaCamposFormulario
.aListaCamposFormulario
; la a
indicaría que la variable es una matriz, en inglés array.En realidad, ninguna es mejor o peor: lo importante es elegir una y ser consistente a la hora de aplicarla, y que los nombres de las variables sean descriptivos. En serio, esto ahorra horas de revisión.
En cuanto a su tipología, las variables se dividen en:
Vamos a verlos por separado.
Los escalares son variables que corresponden a lo que se conoce como tipos primitivos, que son los tipos de datos más simples que se pueden definir. Según esto, los esclares pueden ser:
true
o false
, 1
o 0
.Numerales: Son valores numéricos de 32 bits para los enteros y de 64 bits para los fraccionarios. Se pueden expresar en decimal, octal o hexadecimal:
var numeroDecimal = 17; // 17 en decimal
var numeroOctal = 021; // 17 en octal, se indica con un 0 delante
var numeroHexadecimal = 0x11; // 17 en hexadecimal, se indica con 0x delante
Eso sí, cuando se realizan operaciones con ellos, el resultado devuelto siempre es un valor decimal.
Cadenas literales: Son un conjunto de caracteres alfanuméricos. Se declaran por medio de comillas:
var nombre = "Irene";
var mascota = "Gatagorda";
typeof
pedimos el tipo de variable de una que no corresponde a uno de los tipos primitivos.Este ejemplo interactivo puede aclarar un poco mejor los tipos de escalares.
Para el caso de las cadenas de literales, hay dos puntuaciones que hacer.
Primero, existen una serie de valores especiales para las cadenas de literales:
Caracter | Lo que representa |
---|---|
\n |
Salto de línea |
\r |
Retorno de carro |
\t |
Tabulación |
\0 nnn |
Un caracter representado por su valor octal, donde «n» es un valor entre 0 y 7 |
\x nn |
Un caracter representado por su valor hexadecimal, donde «n» es un valor entre 0 y F |
\u nnnn |
Un caracter de Unicode representado por su valor hexadecimal, donde «n» es un valor entre 0 y F |
Segundo, cuando se incluyen como caracteres de una cadena caracteres propios de la sintaxis de JavaScript, debe escaparse, es decir, incluir una barra invertida (\
) antes de ellos, para evitar errores de interpretación, por ejemplo antes de una comilla doble, o de la propia barra invertida.
Pasemos ahora a las matrices.
Deliberadamente cometo un error: técnicamente, Array
es un objeto nativo de JavaScript, pero me parece que es más intuitivo para los neófitos presentar las matrices como variables que pueden almacenar varios valores. No obstante, lo «subsano» en la subsección del curso dedicada al objeto Array.
Una matriz almacena diversos valores3, a los que se accede haciendo referencia al índice del valor. Cuando se conocen los valores, se pueden declarar de esta manera:
var vientos = new Array("Bóreas","Céfiro","Noto","Euro");
o de esta otra:
var vientos = new Array();
vientos[0] = "Bóreas";
vientos[1] = "Céfiro";
vientos[2] = "Noto";
vientos[3] = "Euro";
aunque también se pueden crear sin asignarles valores inmediatamente:
var vientos = new Array();
Para acceder a los valores almacenados, simplemente habría que indicar el índice —la posición— que ocupan, comenzando por el cero. Así, para apuntar al valor Céfiro
emplearíamos vientos[1]
.
Las matrices pueden, asu vez, ser unidimensionales, como la anterior, o multidimensionales, cuando se trata de una matriz compuesta no por escalares, sino por otras matrices:
var sucesiones = new Array();
suceciones[0] = new Array("2","4","6","8","10");
suceciones[1] = new Array("2","4","8","16","32");
Para acceder a sus valores se hace referencia al índice que ocupa la segunda matriz dentro de la primera, y a la posición del valor que se quiere extraer en aquella. Por ejemplo, si quisiéramos extraer el valor 16
, haríamos referencia a él por medio de sucesiones[1][3]
.
Al principio puede resultar un tanto confuso, pero resulta mucho más sencillo si se piensa en una matriz multidimensional como una tabla de datos:
COLUMNAS (Matrices secundarias) 0 1 2 3 4
FILAS (Matriz principal) 0 |2| |4| |6| | 8| |10|
1 |2| |4| |8| |16| |32|
sucesiones[1][3]
sería como pedir «dime el valor que se encuentra en la fila 1, columna 3».
Como para los escalares, dejo un ejemplo para hacer más comprensibles las matrices.
Más adelante veremos cómo trabajar con ellas en la sección dedicada al objeto Array, pero sobre todo veremos que es esencial comprenderlas a la hora de trabajar con el DOM.