
Symbol y BigInt en JavaScript
Índice
- Introducción a Symbol
- Creación de un Symbol
- Uso de Symbol en propiedades de objetos
- Introducción a BigInt
- Creación de un BigInt
- Operaciones con BigInt
- Conclusión
Introducción a Symbol
En JavaScript, un Symbol
es un tipo de dato primitivo que fue introducido en ECMAScript 2015 (ES6). Los Symbols
son únicos e inmutables, lo que los hace útiles para identificar propiedades de objetos sin riesgo de colisión con otras propiedades.
Creación de un Symbol
Para crear un Symbol
, se utiliza la función Symbol()
. Cada llamada a Symbol()
genera un valor único de tipo Symbol
.
const symbol1 = Symbol();
const symbol2 = Symbol();
console.log(symbol1 === symbol2); // false
También se puede crear un Symbol con una descripción opcional, que es útil principalmente para propósitos de depuración.
const symbolWithDesc = Symbol("mySymbol");
console.log(symbolWithDesc.description); // "mySymbol"
Uso de Symbol en propiedades de objetos
Los Symbols se pueden usar como claves para propiedades de objetos, permitiendo definir propiedades que no colisionarán con otras propiedades del objeto.
const mySymbol = Symbol("uniqueKey");
const myObject = {
[mySymbol]: "Value associated with mySymbol"
};
console.log(myObject[mySymbol]); // "Value associated with mySymbol"
A diferencia de las propiedades definidas con cadenas, las propiedades definidas con Symbols no se enumeran en un bucle for…in ni en métodos como Object.keys(), lo que puede ser útil para definir propiedades “ocultas”.
Introducción a BigInt
El tipo BigInt
fue introducido en ECMAScript 2020 (ES11) y permite representar enteros más grandes que el límite que el tipo Number puede manejar en JavaScript, que es 2^53 - 1 para números positivos y -(2^53 - 1) para números negativos.
Creación de un BigInt
Un BigInt se puede crear añadiendo la letra n al final de un número entero, o utilizando la función BigInt().
const bigInt1 = 1234567890123456789012345678901234567890n;
const bigInt2 = BigInt("1234567890123456789012345678901234567890");
console.log(bigInt1 === bigInt2); // true
Operaciones con BigInt
Los BigInt soportan las mismas operaciones que los números normales (+, -, *, /, etc.), con la excepción de que no se pueden mezclar BigInt y Number en operaciones aritméticas.
const bigIntSum = 100000000000000000000000000000n + 100000000000000000000000000000n;
console.log(bigIntSum); // 200000000000000000000000000000n
const bigIntDivide = 10n / 3n;
console.log(bigIntDivide); // 3n (Los BigInt siempre redondean hacia cero)
Conclusión
Symbol
y BigInt
son características poderosas de JavaScript que permiten a los desarrolladores manejar identificadores únicos y números enteros extremadamente grandes, respectivamente. El uso adecuado de estas herramientas puede llevar a un código más robusto y menos propenso a errores en aplicaciones complejas.