Al momento de declarar variables, estuvimos almacenando valores como 10 o “Walter” que, como sabemos son valores literales de tipo número y string respectivamente.
Pero esos no son los únicos tipos de datos de JavaScript, hay ocho tipos básicos:
| Tipo | Descripción | Ejemplo |
|---|---|---|
Number |
Valor numérico | 8289.8 |
BigInt |
Valor numérico grande | 1234567890123456789n |
String |
Valor de texto | 'Walter' |
Boolean |
Valor booleano | true |
undefined |
Valor sin definir | undefined |
Function |
Función | function() {} |
Symbol |
Símbolo | Symbol(1) |
Object |
Objeto | {} |
Podemos poner cualquier tipo en una variable en cualquier momento: una variable puede en un momento ser un string y luego almacenar un número.
let a = "hola"; // a contiene un string
a = 123456; // ahora a contiene un número
JavaScript pertenece al grupo de lenguajes de tipado dinámico o débil, lo que significa que existen tipos de datos, pero las variables no están limitadas a ninguno de ellos.
Si necesitamos saber qué tipo de dato tiene una variable en algún momento en particular, podemos utilizar el operador typeof, que nos dice el tipo de dato de la variable que lo acompaña como operando:
let a = "hola";
typeof a; // "String"
a = 123456;
typeof a; // "Number"
Veamos un poco de qué tratan los tipos más utilizados.
El tipo Number representa números enteros y de punto flotante.
let n = 123; // número entero
let m = 123.45 // número de punto flotante
Además de los números normales con los que tenemos costumbre de trabajar, también agrupa los llamados “valores numéricos especiales" que a pesar de no ser números, son tratados como tales:
Infinity, que representa el valor infinito matemático (∞), un valor más grande que cualquier otro valor.
let n = 1 / 0; // Infinity
-Infinity, que representa el valor infinito matemático negativo (-∞), un valor más pequeño que cualquier otro valor.
let n = -1 / 0; // -Infinity
NaN, que significa not a number y representa un error de cálculo resultado de una operación matemática incorrecto o indefinida.
let n = Infinity - Inifinity; // NaN
let m = "walter" * 10; // NaN
Gracias a NaN, podemos hacer cualquier cosa en JavaScript, como dividir por cero o multiplicar strings con números sin obtener un error fatal, pues en el peor de los casos, obtendremos NaN como resultado, que es un Number.
Imaginemos que necesitamos almacenar el valor 1.000 millones, por lo que escribimos el siguiente código: