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
yMath.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 deNaN
(2 * "string" / 2
)
Verifica tus conocimientos
¿Cuál es el resultado de pasar false
a Number()
?
¿Cuál es el resultado de la siguiente operación matemática?
"Six" * 3