JavaScript dispone de varios objetos predefinidos para acceder a muchas de las funciones normales de cualquier lenguaje, como puede ser el manejo de vectores o el de fechas. En algunos casos estaremos tratando con objetos aunque no nos demos cuenta, ya que los usos más habituales de los mismos disponen de abreviaturas que esconden el hecho de que sean objetos.
Este capítulo no pretende ser una referencia completa, sino un resumen de las propiedades y métodos más usados.
Como dijimos antes, este objeto permite crear vectores. Se inicializa de cualquiera de las siguientes maneras:
vector = new Array(longitud); vector = new Array(elemento1, elemento2, ..., elementoN);
En el primer caso crearemos un vector con el número especificado de elementos, mientras que en el segundo tendremos un vector que contiene los elementos indicados y de longitud N. Para acceder al mismo debemos recordar que el primero elemento es el número cero.
El objeto Array tiene, entre otros, los siguientes métodos y propiedades:
function compararEnteros(a,b) { return a<b ? -1 : (a==b ? 0 : 1); }
Usando esta función ordenaría numéricamente (y de menor a mayor) los elementos del vector.
Este objeto nos permitirá manejar fechas y horas. Se invoca así:
fecha = new Date(); fecha = new Date(año, mes, dia); fecha = new Date(año, mes, dia, hora, minuto, segundo);
Si no utilizamos parámetros, el objeto fecha contendrá la fecha y hora actuales, obtenidas del reloj del sistema. En caso contrario hay que tener en cuenta que los meses comienzan por cero. Así, por ejemplo:
navidad99 = new Date(1999, 11, 25)
El objeto Date dispone, entre otros, de los siguientes métodos:
Este objeto no está construido para que tengamos nuestras variables Math, sino como un contenedor donde meter diversas constantes (como Math.E y Math.PI) y los siguientes métodos matemáticos:
Método | Descripción | Expresión de ejemplo | Resultado del ejemplo |
---|---|---|---|
abs | Valor absoluto | Math.abs(-2) | 2 |
sin, cos, tan | Funciones trigonométricas, reciben el argumento en radianes | Math.cos(Math.PI) | -1 |
asin, acos, atan | Funciones trigonométricas inversas | Math.asin(1) | 1.57 |
exp, log | Exponenciación y logaritmo, base E | Math.log(Math.E) | 1 |
ceil | Devuelve el entero más pequeño mayor o igual al argumento | Math.ceil(-2.7) | -2 |
floor | Devuelve el entero más grande menor o igual al argumento | Math.floor(-2.7) | -3 |
round | Devuelve el entero más cercano o igual al argumento | Math.round(-2.7) | -3 |
min, max | Devuelve el menor (o mayor) de sus dos argumentos | Math.min(2,4) | 2 |
pow | Exponenciación, siendo el primer argumento la base y el segundo el exponente | Math.pow(2,4) | 16 |
sqrt | Raíz cuadrada | Math.sqrt(4) | 2 |
Al igual que en el caso anterior, no se pueden crear objetos de tipo Number, sino que debemos referirnos al genérico. Este objeto contiene como propiedades los siguientes valores numéricos
Propiedad | Descripción |
---|---|
NaN | Valor que significa "no es un número" |
MAX_VALUE y MIN_VALUE | Máximo y mínimo número representable |
NEGATIVE_INFINITIVE y POSITIVE_INFINITIVE | Infinito negativo y positivo, se utilizan cuando hay desbordamiento al realizar alguna operación matemática |
Este es un objeto que se puede confundir con los datos normales de tipo cadena. Conviene utilizar estos últimos, ya que los objetos String tienen un comportamiento extraño cuando se utilizan como cadenas normales. Además, al crear una cadena estamos creando a la vez un objeto String asociado. Su utilidad está en sus métodos, entre los que cabe destacar:
cadena = "Navidad,Semana Santa,Verano"; vector = cadena.split(",");
En el ejemplo, el vector tendrá tres elementos con cada una de las vacaciones de un escolar español normal.
Este objeto se utiliza para comprobar si las cadenas se ajustan a ciertos patrones formalizados como expresiones regulares. Funcionan en las versiones 4 y superiores de los dos navegadores. Resultan bastante complicadas de manejar, así que les dedicamos un capítulo en exclusiva un poco más adelante.
Objeto creado para crear confusiones a los programadores. Se supone que sirve para meter en un objeto los valores lógicos de verdadero y falso pero resulta que no se pueden utilizar en condiciones de la manera habitual.
Sirve para crear funciones de manera ilegible y para que las referencias (que son siempre referencias a objetos) puedan usarse con funciones como en el ejemplo que vimos. La manera de crear funciones es la siguiente:
funcion = new Function([arg1, arg2, ..., argN], codigo);
Por ejemplo:
esElMejor = new Function([cadena], "return cadena=='Daniel' ? true : false");