Como ya comentamos en el apartado Tipos de datos de fundamentos de programación, los tipos de datos son la naturaleza del contenido de una variable o constante. En la programación debemos tener varios conceptos claros porque estaremos utilizándolos todo el tiempo y es importante no confundirlos: nombre de una variable, contenido de la variable y tipo de dato de la variable.
Veamos algunos ejemplos:
Código | Nombre de la variable | Contenido | Tipo de dato |
---|---|---|---|
const num = 44 | num | 44 | Numérico (number ) |
const text = "Manz" | text | "Manz" | Texto (string ) |
En muchos lenguajes, el programador debe indicar el tipo de dato que tiene una constante o variable. Sin embargo, Javascript nos da la libertad de no tener que indicarlo.
Este simple detalle es algo que a muchos programadores les pone nerviosos. Javascript tiene sus ventajas y sus desventajas debido a esta libertad. Pero recuerda que aunque no lo indiquemos, Javascript le asigna un tipo de dato dependiendo del contenido y el contexto.
Tipos de datos en Javascript
En Javascript disponemos de muchos tipos de datos, sin embargo, se suelen catalogar en dos grupos:
- 1️⃣ Tipos de datos primitivos (básicos)
- 2️⃣ Tipos de datos no primitivos (complejos)
Vamos a desglosarlos:
Tipo de dato | Descripción | Más información |
---|---|---|
Tipos de datos primitivos | ||
Number | Valor numérico (enteros, decimales...) | Ver Number |
String | Valor de texto (cadenas de texto, caracteres...) | Ver String |
Boolean | Valor booleano (valores verdadero o falso) | - |
BigInt | Valor numérico muy grande | Ver BigInt |
Symbol | Símbolo (valor único) | Ver Símbolos |
undefined | Valor sin definir (variable sin inicializar) | - |
Tipos de datos no primitivos | ||
Object | Objeto (estructura más compleja) | Ver Objetos |
Function | Función (función guardada en una variable) | Ver Funciones |
Hay un caso especial del que hablaremos más adelante: null
(valor vacío o ausencia de información).
Tipos de datos primitivos
Para empezar, nos centraremos en introducir los 3 primeros: tipos de datos numéricos, de texto y booleanos. Son denominados los tipos de datos primitivos de Javascript. En próximos temas iremos descubriendo más detalles sobre cada uno de ellos y profundizando en el resto.
(Los tipos primitivos existen, pero los civilizados es broma... ¿eh?)
Para saber que tipo de dato tiene una variable, debemos observar el valor que le hemos dado.
- Si es un valor numérico, será de tipo
number
. - Si es un valor de texto, será de tipo
string
. - Si es verdadero o falso, será de tipo
boolean
.
Veamos un ejemplo en el que identificaremos que tipo de dato tiene cada variable:
// Un texto, letra o carácter
const text = "Hola, me llamo Manz";
// Un número (entero o decimal)
const number = 42;
// Un número muy grande (se añade n al final)
const bignumber = 12345678901234567890n;
// Un valor de verdadero o falso
const boolean = true;
// Un valor único
const symbol = Symbol("unique");
Como se puede ver, estos son los tipos de datos primitivos básicos de Javascript. Cada uno de ellos tiene sus particularidades, sus características y una serie de operaciones que se puede realizar con ellos. Las iremos viendo a lo largo de los diferentes temas.
Tipos de datos no primitivos
Al margen de los tipos de datos que hemos visto hasta ahora, en Javascript cualquier tipo de dato no primitivo se considera un object
, lo que suele indicar que se trata de un tipo de dato más complejo.
Veamos un ejemplo de tipos de datos no primitivos:
// Tipo de dato: Objeto
const user = { name: "ManzDev" };
// Tipo de dato: Array
const users = ["ManzDev", "CyberManzDev", "Manz9000"];
// Tipo de dato: RegExp
const regex = /.+/;
En todos estos casos, los tipos de datos de cada constante se consideran object
, ya que son tipos de datos más complejos que los primitivos. Ahora no nos preocuparemos de ellos, los veremos más adelante.
Tipo de dato undefined
Por otro lado, existe un tipo de dato especial denominado undefined
(sin definir). Se suele considerar también un tipo primitivo, pero es un caso bastante especial.
El tipo undefined
es el valor que tienen las variables a las que aún no se les ha dado ningún valor específico (es decir, como su propio nombre indica, están sin definir).
let notDefined;
// Tiene el valor undefined
let sinDefinir = undefined;
// Aunque no es lo habitual, también se puede asignar explícitamente
Tanto notDefined
como sinDefinir
tienen el valor undefined
, por lo que no están definidas.
Tipo de dato null
El valor especial null
indica la ausencia intencional de información. A diferencia de undefined
(que indica que aún no se ha definido*), null
indica que el valor ha sido definido, pero representa ausencia de valor.
Veamos un ejemplo con la variable selectedUser
de la reserva de una habitación, donde se puede observar el matiz:
// Caso A
let selectedUser;
// Caso B
let selectedUser = null;
// Caso C
let selectorUser = "ManzDev";
- 1️⃣ Primer caso: la variable
selectedUser
tiene el valorundefined
indicando que posiblemente el usuario aún no ha sido seleccionado (no se ha realizado la asignación de un huésped a esa habitación). - 2️⃣ Segundo caso: la variable
selectedUser
tiene el valornull
, indicando que el usuario ya ha sido seleccionado, pero se ha elegido no seleccionar ningún usuario (la habitación está vacía, no tiene huésped). - 3️⃣ Tercer caso: la variable
selectedUser
tiene el valorManzDev
, indicando que ese usuario seleccionado como huésped.
Si no te ha quedado claro, hay un ejemplo gráfico donde siempre suele entenderse: