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. Por ejemplo, si tenemos una variable con contenido 44
, su tipo de dato es un número. Si tenemos una variable con contenido "Manz"
, su tipo de dato es texto.
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. Sin embargo, recuerda que aunque no lo indiquemos, Javascript le asigna un tipo de dato dependiendo del contenido.
Tipos de datos en Javascript
En Javascript disponemos de muchos tipos de datos, sin embargo, se suelen catalogar en dos grupos: tipos de datos primitivos (básicos) y tipos de datos no primitivos (complejos).
Tipo de dato | Descripción | Más información |
---|---|---|
Tipos de datos primitivos | ||
Number | Valor numérico (enteros, decimales...) | Ver Number |
BigInt | Valor numérico muy grande | Ver BigInt |
String | Valor de texto (cadenas de texto, carácteres...) | Ver String |
Boolean | Valor booleano (valores verdadero o falso) | - |
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
. Representa un valor vacío o ausencia de información.
Tipos de datos primitivos
Para empezar, nos centraremos en introducir los tipos de datos numéricos, de texto y booleanos, 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 cada sección.
(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.
Por otro lado, existe un tipo de dato especial denominado undefined
(sin definir). Este es el valor que tienen las variables a las que no se les ha dado ningún valor específico (es decir, que 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
no se han definido y tienen el valor undefined
.
El valor especial null
indica la ausencia intencional de información. Es decir, a diferencia de undefined
, que indica que el valor aún no se ha definido, null
indica que el valor ha sido definido explícitamente, pero representa una 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;
En el 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). En el segundo caso, la variable selectedUser
tiene el valor null
, indicando que el usuario ha sido seleccionado intencionalmente, pero no es ningún usuario (la habitación está vacía, no tiene huésped).
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"];
En estos dos casos, los tipos de datos de cada constante se consideran object
, ya que son tipos de datos primitivos, y como vemos más adelante, más concretamente el primero es un Objeto y el segundo un Array.