Numbers

Un valor numérico se compone de cualquier serie de caracteres numéricos, por ejemplo:

5

El tipo de dato numérico también incluye algunas propiedades globales especiales representan conceptos numéricos, como Infinity y NaN, un significado de valor "no es un número", un resultado potencial de intentar realizar tareas matemáticas cálculos sobre valores no numéricos.

El objeto numérico

Cuando se pasa un valor a la función Number(), ese valor se convierte en el equivalente numérico. Por ejemplo, una cadena numérica da como resultado una cadena equivalente Número primitivo:

Number( "10" );
> 10

Si pasas un valor de false o null a Number(), se muestra 0 y true. 1

Number( null );
> 0

Number( false );
> 0

Number( true );
> 1`

Si un valor no se puede convertir, como en el caso de undefined o una string que contiene caracteres no numéricos, la función Number muestra NaN:

Number( undefined );
> NaN

Number( "The number 3." );
> NaN

Como se detalla en la herencia prototípica, Es probable que no tengas motivos para usar el objeto Number como porque crea un objeto Number en lugar de un literal numérico.

let numObject = new Number( 15 );

numObject;
> Number { 15 }

Este objeto se comporta como su valor asignado para operaciones matemáticas, pero falla en las comparaciones de igualdad estrictas con literales numéricos no coinciden sin proporcionar ningún beneficio práctico en comparación con un valor literal.

let tenObject = new Number( 10 );

tenObject + 5;
> 15

tenObject === 10;
> false

Números enteros y flotantes

JavaScript solo tiene un tipo de número: IEEE 754-1985 de doble precisión de 64 bits números de punto flotante entre -2^1024 y 2^1024. Antes de que JavaScript almacene cualquier número en la memoria, primero convierte ese número en un número binario de punto flotante, también llamado flotante.

Este almacenamiento de 64 bits (un bit de “signo” positivo o negativo, 11 bits para un exponente y 52 bits para una fracción) puede causar errores de precisión con cualquier número de dígitos que no encajan en un rango permitido. Esta limitación es inherente al tipo de datos numérico de JavaScript.

0.1 + 0.7
> 0.7999999999999999

En su lugar, se puede almacenar un valor numérico como integer, un número de punto flotante sin una fracción entre -(2^53 − 1) y 2^53 − 1. Debido a que flota y los números enteros se almacenan de la misma manera, no hay diferencia práctica en cómo operan estos números. Sin embargo, recomendamos usar números enteros cuando posible para evitar errores de precisión.

Operadores numéricos

Cuando usas operadores matemáticos estándar con primitivas numéricas, el orden de operaciones matemático apply: las expresiones entre paréntesis se evalúan primero y, luego, exponentes, multiplicación, división, suma y resta.

Operador Nombre Descripción Uso Resultado
+ Adición 2+2 4
- Resta 4-2 2
* Multiplicación 2*5 10
/ División 10/5 2
++ Incremento Suma uno a un número 2++ 3
-- Decremento Resta uno a un número 3-- 2
** Exponente Muestra el resultado de aumentar el primer
operando a la potencia del segundo operando.
2**4 16
% Resto Devuelve el resto cuando
el primer operando se divide por el segundo.
12%5 2

También puedes usar operadores de tareas matemáticas para realizar una tarea operación sobre el valor de una variable y asignar inmediatamente ese un valor recién calculado a la variable.

Operador Nombre Uso
+= Asignación de adición myValue += 2
-= Asignación de resta myValue -= 2
*= Asignación de multiplicación myValue *= 2
/= Asignación de división myValue /= 2
**= Asignación de exponentes myValue **= 2
%= Asignación restante myValue %= 2

Valores simbólicos

La primitiva de número también se aplica a algunos casos especiales: "no es un número" valor (NaN) y un valor que representa el infinito que puede ser positivo (Infinity) o negativa (-Infinity).

En raras ocasiones, podrías encontrar Infinity como resultado de dividir por cero, un caso en la que la mayoría de los lenguajes de programación arrojan un error:

10 / 0
> Infinity

Recuerda que JavaScript distingue entre mayúsculas y minúsculas. Infinity es un tipo de datos numéricos que representa el concepto de infinito, pero infinity no tiene un significado especial:

Infinity
> Infinity

infinity
> Uncaught ReferenceError: infinity is not defined

NaN (que significa "No es un número") aparece con más frecuencia, cuando el resultado de una operación aritmética no se puede expresar como número. Por ejemplo, dado que JavaScript intenta inferir a partir del valor y el contexto, un literal de cadena que solo contenga un número usarse en una operación matemática:

"2" * 2;
> 4

Sin embargo, si esa cadena no se puede analizar como un valor numérico, operación da como resultado un no número:

"two" * 2;
> NaN

Se muestra NaN cada vez que se representa un valor no válido como un número. en una operación matemática. Algunos ejemplos son los siguientes:

  • Error en la cantidad de conversiones (por ejemplo, parseInt( undefined ))
  • Son operaciones aritméticas en las que el resultado no es un número real (por ejemplo, 0 / 0 y Math.sqrt( -10 ))
  • Una operación aritmética con un resultado indeterminado (0 * Infinity)
  • Una operación aritmética que incluye un NaN (NaN + 2) explícito o un resultado de NaN (2 * "string" / 2)

Verifica tus conocimientos

¿Cuál es el resultado de pasar false a Number()?

0
Falso
NaN
1

¿Cuál es el resultado de la siguiente operación matemática?

"Six" * 3

NaN
2
18
Verdadero
0