¿Qué son los tipos de datos?

Naturaleza del contenido de una variable


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ódigoNombre de la variableContenidoTipo de dato
const num = 44num44Numé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 datoDescripciónMás información
Tipos de datos primitivos
NumberValor numérico (enteros, decimales...)Ver Number
StringValor de texto (cadenas de texto, caracteres...)Ver String
BooleanValor booleano (valores verdadero o falso)-
BigIntValor numérico muy grandeVer BigInt
SymbolSímbolo (valor único)Ver Símbolos
undefinedValor sin definir (variable sin inicializar)-
Tipos de datos no primitivos
ObjectObjeto (estructura más compleja)Ver Objetos
FunctionFunció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.

Tipos de datos primitivos y civilizados

(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 valor undefined 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 valor null, 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 valor ManzDev, indicando que ese usuario seleccionado como huésped.

Si no te ha quedado claro, hay un ejemplo gráfico donde siempre suele entenderse:

No cero vs cero vs undefined vs null

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev