Novedades ES6

Clase Number en Javascript

Vamos a ver a continuación otra de las clases nativas de Javascript para trabajo con datos numéricos. Se trata de la clase Number, que modeliza el tipo de datos numérico y fue añadida en la versión 1.1 de Javascript (con Netscape Navigator 3).

Como veremos en este artículo, la clase Number nos sirve para crear objetos que tienen datos numéricos como valor. Es muy probable que no lo llegues a utilizar en ninguna ocasión. Por lo menos en la mayoría de los scripts, para hacer las cosas más dispares, no vas a utilizar esta clase, no obstante viene bien conocerla.

El valor del objeto Number que se crea depende de lo que reciba el constructor de la clase Number. Con estas reglas:

  • Si el constructor recibe un número, entonces inicializa el objeto con el número que recibe. Si recibe un número entrecomillado lo convierte a valor numérico, devolviendo también dicho número.
  • Devuelve 0 en caso de que no reciba nada.
  • En caso de que reciba un valor no numérico devuelve NaN, que significa "Not a Number" (No es un número)
  • Si recibe false se inicializa a 0 y si recibe true se inicializa a 1.

Los números de JavaScript son siempre punto flotante de 64 bits

A diferencia de muchos otros lenguajes de programación, JavaScript no define diferentes tipos de números, como enteros, cortos, largos, de punto flotante, etc. Los números de JavaScript siempre se almacenan como números de punto flotante de doble precisión, siguiendo el estándar internacional IEEE 754. Este formato almacena números en 64 bits, donde el número (la fracción) se almacena en los bits 0 a 51, el exponente en los bits 52 a 62 y el signo en el bit 63:

Precisión

Los números enteros (números sin un período o notación exponente) tienen una precisión de hasta 15 dígitos.
El número máximo de decimales es 17, pero la aritmética de punto flotante no siempre es 100% precisa:

toLocaleString(x) Convierte un número en una cadena, según la configuración regional.
toString (x) Devuelve un número como una cadena. Todos los métodos numéricos se pueden usar en cualquier tipo de números (literales, variables o expresiones)
toExponential(x) Devuelve una cadena, con un número redondeado y escrito en notación exponencial. Un parámetro define el número de caracteres detrás del punto decimal.
toFixed(x) Devuelve una cadena, con el número escrito con un número específico de decimales.
toPrecision(x) Devuelve una cadena, con un número escrito con una longitud especificada
valueOf(x)    Devuelve un número como un número .En JavaScript, un número puede ser un valor primitivo (typeof = número) o un objeto (typeof = object). El valueOf()método se utiliza internamente en JavaScript para convertir objetos Number en valores primitivos. No hay razón para usarlo en su código.
Number(x) Se puede utilizar para convertir variables de JavaScript en números; también puede convertir una fecha en un número
parseInt(x) Analiza una cadena y devuelve un número entero. Se permiten espacios. Solo se devuelve el primer número.
parseFloat(x) Analiza una cadena y devuelve un número. Se permiten espacios. Solo se devuelve el primer número.
MAX_VALUE Devuelve el mayor número posible en JavaScript..
MIN_VALUE Devuelve el número más bajo posible en JavaScript.
POSITIVE_INFINITY Se devuelve en caso de desbordamiento.
NEGATIVE_INFINITY Se devuelve en caso de desbordamiento .
NaN Es una palabra reservada de JavaScript que indica que un número no es un número legal. Tratar de hacer aritmética con una cadena no numérica resultará en NaN(No es un número).
isFinite(x) Comprueba si un valor es un número finito.
isInteger(x) Comprueba si un valor es un número entero
isNaN(x) Comprueba si un valor es Número. .
isSafeInteger(x) Comprueba si un valor es un entero seguro


<!DOCTYPE html>
<html>
<body>
<script>
var x = 123;document.write('Muestra la variabla X -> '+x + "<br>");
document.write('Convierte el numero a String (123).toString() -> '+(123).toString() + "<br>");
document.write('Convierte el numero a String (100 + 23).toString() -> '+(100 + 23).toString() + "<br>");
var y = 9.656;
y.toExponential(2); // retorna 9.66e+0
y.toExponential(4); // retorna 9.6560e+0
y.toExponential(6); // retorna 9.656000e+0
document.write('Muestra la variable Y-> '+y + "<br>");
document.write('Muestra la variable y.toExponential(2); con 2 decimales-> '+y.toExponential(2) + "<br>");
document.write('Muestra la variable y.toExponential(4); con 4 decimales-> '+y.toExponential(4) + "<br>");
document.write('Muestra la variable y.toExponential(10); con 10 decimales-> '+y.toExponential(10) + "<br>");
</script>
</body>
</html>