Skip to content
Aprende Angular de forma rápida y efectiva  Ver curso

Novedades de ES6: Métodos de la clase Number

Siguiendo con el repaso a las novedades de ES6, vamos a explorar los nuevos métodos estáticos que aporta ECMAScript 2015 a la clase Number.

Nuevos literales para enteros

A partir de ahora, se pueden definir integers a partir de literales tanto en binario como en octal:

// ES5 - hexadecimal
0xFF; //255

//ES6 - binary
0b101; //5

// ES6 - octal
0o101 ; //65

Métodos estáticos de Number

Number.isFinite()

Nos permite saber si un numero es finito o no.

Number.isFinite(Infinity); //false
Number.isFinite(NaN); //false
Number.isFinite(5); //true

Number.isInteger()

Nos permite saber si un número es entero o no.

Number.isInteger(-1); //true
Number.isInteger(1); //true
Number.isInteger(1.0); //true
Number.isInteger(1.1); //false
Number.isInteger(Infinity); //false
Number.isInteger(NaN); //false
Number.isInteger('1'); //false

Number.isSafeInteger()

Nos permite saber si un entero es seguro, es decir, pertenece a un rango de 53 bits por lo que no hay pérdida de precisión.

Debido a que Javascript utiliza un formato numérico de coma flotante de doble precisión, Un safe integer en Javascript queda comprendido entre Number.MIN_SAFE_INTEGER (de valor -2⁵³+1) y Number.MAX_SAFE_INTEGER (de valor 2⁵³-1). Los valores fuera de ese umbral, se truncan a dicho límite.

Así, con el método isSafeInteger() podemos comprobar de forma directa si el entero se encuentra dentro del rango seguro.

Number.isSafeInteger(1); //true
Number.isSafeInteger(1.1); //false
Number.isSafeInteger(Math.pow(2, 53)-1); //true
Number.isSafeInteger(Math.pow(2, 53)); //false 

Number.isNaN()

Indica si el número tiene valor NaN (Not A Number), y es ligeramente distinto a la antigua función global isNaN()

Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0)       // true

// e.g. these would have been true with global isNaN()
Number.isNaN("NaN");      // false
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN("blabla");   // false

// These all return false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(1);
Number.isNaN("1.1");
Number.isNaN(" ");

Number.parseFloat()

Es equivalente a la antigua función global parseFloat().

var floatNum = Number.parseFloat(string);

Number.parseInt()

Es equivalente a la antigua función global parseInt().

var int = Number.parseInt(string[, radix]);

Hasta aquí las novedades de la clase Number, pequeñas mejoras que seguramente simplificaran un poco nuestro código.

¡Saludos!

¿Te ha gustado el artículo? ¡Compártelo!

Published inES6

Be First to Comment

Deja un comentario