Seleccionar página

Referencia de ECMAScript 5.1 – Globales

Índice

Objeto global | Infinity | NaN | undefined | decodeURI() | decodeURIComponent() | encodeURI() | encodeURIComponent() | eval() | isFinite() | isNaN() | parseFloat() | parseInt()


Objeto global

Cada vez que se ejecuta el interprete de Javascript se crea un objeto global que contiene las propiedades y métodos que podemos llamar como si fueran constantes y funciones.

En estos casos no es necesario incluir el nombre del objeto y un punto para llamarlas.

Este objeto global no es accesible como el resto de objeto de Javascript y solo podemos utilizar sus propiedades y métodos como constantes y funciones globales.


Infinity

Constante especial que indica un número que es mayor que el mayor número de coma flotante.

El infinito negativo (-Infinity) indica que es un número menor que el menor número de coma flotante.

1 / 0 === Infinity   // true

NaN

Constante especial que especifica que una expresión no es un número.

La constante NaN (no es un número) es un miembro del objeto global y está disponible en todo momento.

Los operadores == y === no pueden utilizarse con NaN por lo que es necesario utilizar la función isNaN.


undefined

Constante especial con un valor que nunca ha sido definido.

La constante undefined es una propiedad del objeto global. Cuando se ha declarado una variable pero no se ha inicializado, su valor es undefined, pero también podemos asignar este valor a una variable.

var sindefinir = undefined; // no es necesario, pero es perfectamente válido

Hay que tener en cuenta que si no se ha declarado una variable no se puede comparar con la constante undefined ya que la variable como tal no existe y se debería utilizar typeof para comparar su resultado con la cadena "undefined".

var declarada;
if (declarada === undefined) {
    console.log('sin inicializar');
}

decodeURI()

Devuelve un identificador uniforme de recursos (URI) previamente codificado.

Sintaxis

decodeURI(cadenaURI)

cadenaURI

Valor que representa un URI codificado.

Se debe usar la función decodeURI en lugar de la función en desuso unescape.

La función decodeURI devuelve una cadena con el URI sin codificar o lanza un error URIError si el parámetro cadenaURI no es válido. Normalmente la codificación del URI se realizará con la función encodeURI.

var URIcodificada = 'https://www.todojs.com/%20m%C3%A1s%20informaci%C3%B3n';
console.log(decodeURI(URIcodificada));  // https://www.todojs.com/ más información

decodeURIComponent()

Devuelve un componente válido de un identificador uniforme de recursos (URI) previamente codificado.

Sintaxis

decodeURIComponent(cadenaURI)

cadenaURI

Valor que representa un componente de URI que queremos descodificar.

La función decodeURIComponent devuelve un URI codificado, normalmente por medio de la función encodeURIComponent.

var URIcodificada = 'http%3A%2F%2Fwww.todojs.com%2F';
console.log(decodeURIComponent(URIcodificada));  // https://www.todojs.com/

encodeURI()

Codifica un identificador uniforme de recursos (URI).

Sintaxis

encodeURI(cadenaURI)

cadenaURI

URI que deseamos codificar.

Se debe usar la función encodeURI en lugar de la función en desuso escape.

La función encodeURI devuelve una cadena con el URI codificado o lanza un error URIError si el parámetro cadenaURI no es válido. La cadena devuelta se puede decodificar con la función decodeURI.

var URIsincodificar = 'https://www.todojs.com/ más información';
console.log(encodeURI(URIsincodificar));  // https://www.todojs.com/%20m%C3%A1s%20informaci%C3%B3n

La función encodeURI no codifica los caracteres: :, /, ; y ?. Se puede usar la función encodeURIComponent para obtener una URI donde se codifiquen estos caracteres.


encodeURIComponent()

Codifica una cadena de texto como un componente válido de un identificador uniforme de recursos (URI), incluidos todos los caracteres especiales.

Sintaxis

encodeURIComponent(cadenaURI)

cadenaURI

Valor que representa un componente de URI que queremos codificar.

La función encodeURIComponent devuelve un URI codificado y su resultado es decodificado pro la función decodeURIComponent que devuelve la cadena original.

La función encodeURIComponent codifica todos los caracteres, excepto las letras, dígitos, y los siguientes caracteres especiales: -, _, ., !, ~, *, ', ( y ).

var URIsincodificar = 'https://www.todojs.com/';
console.log(encodeURIComponent(URIsincodificar));  // http%3A%2F%2Fwww.todojs.com%2F

eval()

Evalúa código Javascript de forma dinámica y lo ejecuta.

Sintáxis

eval(codigo)

codigo

Cadena de caracteres que contiene código válido de Javascript que se evaluará y ejecutará.

La función eval permite la ejecución dinámica de código fuente de Javascript, que se ejecutará en el mismo contexto que en la que se realiza la llamada a la función eval.

var hoy;
eval("hoy = new Date();");
console.log(hoy.toISOString());

El uso de eval es muy controvertido y se ha extendido la expresión -en inglés-: "eval is evil" (eval es el diablo).


isFinite()

Determina si un número es un número finito válido.

Sintaxis

isFinite(numero)

numero

Cualquier valor que queramos comprobar si es un número finito válido. Si el valor no es numérico Javascript convertirá el valor a ese tipo si es posible.

La función isFinite devuelve true si el numero es cualquier valor distinto de NaN, infinito negativo o infinito positivo, en cuyo caso devuelve false.

isFinite("hola");                 // false
isFinite(Number.MAX_VALUE * 10);  // false
isFinite(1000);                   // true
isFinite("1000");                 // true

isNaN()

Devuelve un valor lógico que indica si un valor es `NaN` (no es un número).

Sintaxis

isNaN(valor)

valor

Valor que se quiere comprobar si es un número o puede ser convertido a un número.

isNan devuelve true si al intenar convertir el valor al tipo número se obtiene NaN (no es un número) o false si es un número válido.

isNaN("ABC");  // true

isNaN("100");  // false
isNaN(100);    // false

parseFloat()

Convierte una cadena en un número de punto flotante.

Sintáxis

parseInt(cadenaNum)

cadenaNum

Cadena que se va a convertir en número de coma flotante.

parseInt("abc");    // NaN
parseInt("1.2abc"); // 1.2

Se puede comprobar si ha devuelto NaN mediante la función isNaN.


parseInt()

Convierte una cadena en un entero.

Sintáxis

parseInt(cadenaNum, [radix])

cadenaNum

Cadena que se va a convertir en número.

[radix]

Valor entre 2 y 36 que define la base del número que se incluye en cadenaNum. Si no se pasa este argumento las cadenas con un prefijo 0x se consideran hexadecimales, todas las demás se consideran decimales.

parseInt("abc");     // NaN
parseInt("12abc");   // 12
parseInt('0xA', 16); // 10

Se puede comprobar si ha devuelto NaN mediante la función isNaN.