Tipos de datos (Primitivos y Complejos)
En JavaScript, los tipos de datos se dividen en dos categorías principales: primitivos y complejos (o no primitivos). Vamos a detallar cada uno de ellos.
Primitivos
Tipos de datos primitivos
Los tipos de datos primitivos son los más básicos y se accede a ellos por valor. Esto significa que cuando se asigna una variable a otra, se copia el valor. Los tipos de datos primitivos en JavaScript son:
- Number
- Null
- Symbol
- String
- Boolean
- Undefined
- Bigint
Tipos de datos complejos (o no primitivos)
Los tipos de datos complejos en JavaScript son aquellos que se accede a ellos por referencia. Esto significa que cuando se asigna una variable a otra, se copia la referencia al valor, no el valor en sí. Los principales tipos de datos complejos son
- Object
- Array
- Map
- Set
- Function
Ejemplo de usabilidada
// Datos primitivos (inmutables)
let a = 5;
let b = a; // Se copia el valor
b = 10;
console.log(a); // Salida: 5 (el valor original permanece inalterado)
console.log(b); // Salida: 10 (b tiene una copia independiente del valor)
let str1 = 'Hola';
let str2 = str1; // Se copia el valor
str2 = 'Adiós';
console.log(str1); // Salida: 'Hola' (el valor original permanece inalterado)
console.log(str2); // Salida: 'Adiós' (str2 tiene una copia independiente del valor)
// Datos complejos (mutables)
let arr1 = [1, 2, 3];
let arr2 = arr1; // Se copia la referencia
arr2.push(4);
console.log(arr1); // Salida: [1, 2, 3, 4] (arr1 se ve afectado por el cambio en arr2)
console.log(arr2); // Salida: [1, 2, 3, 4] (arr2 refleja el cambio)
let obj1 = { nombre: 'Ana' };
let obj2 = obj1; // Se copia la referencia
obj2.edad = 25;
console.log(obj1); // Salida: { nombre: 'Ana', edad: 25 } (obj1 se ve afectado por el cambio en obj2)
console.log(obj2); // Salida: { nombre: 'Ana', edad: 25 } (obj2 refleja el cambio)