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!
Be First to Comment