Tipos de datos numérico en JavaScript

Resumen: en este tutorial, aprenderás sobre los tipos de números de JavaScript y cómo usarlos de manera correcta.
Introducción a los numéricos en JavaScript
JavaScript usa el tipo numérico para representar tanto valores enteros como de punto flotante. Técnicamente, el tipo de numérico en JavaScript utiliza el formato IEEE-754.
ES2020 introdujo un nuevo bigint de tipo primitivo que representa números enteros grandes con valores superiores a 253 – 1.
Para admitir varios tipos de números, JavaScript utiliza diferentes formatos numéricos.
Números enteros
A continuación, se muestra cómo declarar una variable que contiene un entero decimal:
let counter = 100;
Los números enteros se pueden representar en los siguientes formatos:
- Octales (base 8)
- Hexadecimal (basado en 16)
Cuando usas números octales y hexadecimales en operaciones aritméticas, JavaScript los trata como números decimales.
Números octales
Un número octal comienza con el dígito cero (0) seguido de una secuencia de dígitos octales (números del 0 al 7). Por ejemplo:
let num = 071;
console.log(num);
Resultado:
57
Si un número octal contiene un número que no está en el rango de 0 a 7, el motor de JavaScript ignora el 0 y trata el número como un decimal. Por ejemplo:
let num = 080;
console.log(num);
Resultado:
80
Este comportamiento implícito podría causar problemas. Por lo tanto, ES6 introdujo un nuevo literal octal que comienza con el 0o
seguido de una secuencia de dígitos octales (del 0 al 7). Por ejemplo:
let num = 0o71;
console.log(num);
Resultado:
57
Si un número no válido después de 0o
, JavaScript generará un error de sintaxis como este:
let num = 0o80;
console.log(num);
Resultado:
let num = 0o80;
^^
SyntaxError: Invalid or unexpected token
Números hexadecimales
Los números hexadecimales comienzan con 0x o 0X seguidos de cualquier número de dígitos hexadecimales (del 0 al 9 y de la a a la f). Por ejemplo:
let num = 0x1a;
console.log(num);
Resultado:
26
Números de punto flotante
Para definir un número de punto flotante, incluye un punto decimal y al menos un número después de eso. Por ejemplo:
let price = 9.99;
let tax = 0.08;
let discount = .05; // valido, pero no recomendable
Cuando tienes un número muy grande, puedes usar la notación electrónica. La notación E
indica que un número debe multiplicarse por 10 elevado a una potencia dada. Por ejemplo:
let amount = 3.14e7;
console.log(amount);
Resultado:
31400000
La notación 3.14e7
significa que tome 3.14
y lo multiplique por 107
.
Del mismo modo, puede usar la notación E para representar un número muy pequeño. Por ejemplo:
let amount = 5e-7;
console.log(amount);
Resultado:
0.0000005
La notación 5e-7 significa que tomas 5 y lo divides por 10,000,000.
Además, JavaScript convierte automáticamente cualquier número de punto flotante con al menos seis ceros después del punto decimal en notación electrónica. Por ejemplo:
let amount = 0.0000005;
console.log(amount);
Resultado:
5e-7
Los números de punto flotante tienen una precisión de hasta 17 decimales. Cuando realizas operaciones aritméticas con números de coma flotante, a menudo obtienes el resultado aproximado. Por ejemplo:
let amount = 0.2 + 0.1;
console.log(amount);
Resultado:
0.30000000000000004
Enteros grandes
JavaScript introdujo el tipo bigint
a partir de ES2022. El tipo bigint almacena números enteros cuyos valores son mayores que 253 – 1
.
Un literal entero grande tiene el carácter n
al final de un literal entero como este:
let pageView = 9007199254740991n;
Resumen
El tipo de número de JavaScript representa números enteros y de punto flotante.