JavaScript define algunos objetos de forma nativa, por lo que pueden ser utilizados directamente por las aplicaciones sin tener que declararlos. Además de las clases de tipo Object
, Number
, Boolean
y String
que ya se han visto, JavaScript define otras clases como Function
, Array
, Date
y RegExp
.
JavaScript permite definir los arrays de forma abreviada (como se verá en el capítulo de JavaScript avanzado) y también de forma tradicional mediante la clase Array
:
var variable1 = new Array();
Si al instanciar la clase Array()
se pasa un único argumento y es de tipo numérico, se crea un array con el número de elementos indicado:
var variable1 = new Array(10);
En el primer ejemplo, la variable1
simplemente crea un array vacío, mientras que el segundo ejemplo crea un array de 10
elementos que todavía no están definidos. Los elementos de un array no tienen por qué ser todos del mismo tipo. Además, si al declarar el array se conocen los elementos que va a contener, es posible incluirlos en la declaración del array:
var variable1 = new Array(2, "hola", true, 45.34);
Otra forma habitual de añadir nuevos elementos al array es mediante la notación con corchetes que también se utiliza en otros lenguajes de programación:
var variable1 = new Array(); variable1[0] = 2; variable1[1] = "hola"; variable1[2] = true; variable1[3] = 45.34;
El primer elemento del array siempre ocupa la posición 0
(cero) y el tamaño del array aumenta de forma dinámica a medida que se añaden nuevos elementos.
Los arrays contienen decenas de propiedades y métodos muy útiles para manipular sus contenidos y realizar operaciones complejas, tal y como se verá más adelante.
Entre las utilidades que proporciona JavaScript, se encuentra la clase Date
que permite representar y manipular valores relacionados con fechas. Para obtener la representación de la fecha actual, sólo es necesario instanciar la clase sin parámetros:
var fecha = new Date();
Además de la fecha, la instrucción anterior representa la hora en la que ha sido ejecutada la instrucción. Internamente, y como sucede en otros lenguajes de programación y otros sistemas, la fecha y hora se almacena como el número de milisegundos que han transcurrido desde el 1 de Enero de 1970 a las 00:00:00. Por este motivo, se puede construir una fecha cualquiera indicando el número de milisegundos a partir de esa referencia temporal:
var fecha = new Date(0); // "Thu Jan 01 1970 01:00:00 GMT+0100" var fecha = new Date(10000000000000); // "Sat Nov 20 2286 18:46:40 GMT+0100"
Afortunadamente, existen otras formas más sencillas de establecer la fecha y hora que se van a utilizar:
var fecha = new Date(2009, 5, 1); // 1 de Junio de 2009 (00:00:00) var fecha = new Date(2009, 5, 1, 19, 29, 39); // 1 de Junio de 2009 (19:29:39)
El constructor de la clase Date
permite establecer sólo una fecha o la fecha y hora a la vez. El formato es (año, mes, dia)
o (año, mes, dia, hora, minuto, segundo)
. Los meses se indican mediante un valor numérico que empieza en el 0
(Enero) y termina en el 11
(Diciembre). Los días del mes se cuentan de forma natural desde el día 1
hasta el 28
, 29
, 30
o 31
dependiendo de cada mes.
A continuación se muestran algunos de los métodos más útiles disponibles para la clase Date
:
getTime()
– devuelve un número que representa la fecha como el número de milisegundos transcurridos desde la referencia de tiempos (1 de Enero de 1970).getMonth()
– devuelve el número del mes de la fecha (empezando por 0
para Enero y acabando en 11
para Diciembre)getFullYear()
– devuelve el año de la fecha como un número de 4 cifras.getYear()
– devuelve el año de la fecha como un número de 2 cifras.getDate()
– devuelve el número del día del mes.getDay()
– devuelve el número del día de la semana (0
para Domingo, 1
para Lunes, ..., 6
para Sábado)getHours()
, getMinutes()
, getSeconds()
, getMilliseconds()
– devuelve respectivamente las horas, minutos, segundos y milisegundos de la hora correspondiente a la fecha. Cada método get()
mostrado anteriormente tiene su correspondiente método set()
que permite establecer el valor de cada una de las propiedades.
La clase Function
raramente se utiliza de forma explícita para crear funciones. Utilizada de esta forma, se deben indicar todos los parámetros de la función y sus instrucciones como parámetros al instanciar la clase:
var miFuncion = new Function("a", "b", "return a+b;");
El último argumento de la llamada se considera como las instrucciones de la función y todos los anteriores son los argumentos de la misma. En cuanto se complica un poco el código de la función, este método se hace inviable.