SYMBOL EN JAVASCRIPT: QUÉ ES Y CÓMO UTILIZARLO

En JavaScript, Symbol es un tipo de dato primitivo y se utiliza para crear identificadores únicos. A continuación, te explico todo lo esencial sobre Symbol en JavaScript: Symbol es compatible con todos los navegadores modernos (Chrome, Firefox, Safari, Edge) desde 2015, son valores primitivos y no pueden ser modificados una vez creados y cada vez que se crea un Symbol, se obtiene un valor único, incluso si los símbolos tienen la misma descripción. Ejemplo:

const sym1 = Symbol();
const sym2 = Symbol("descripcion");
const sym3 = Symbol("descripcion");
console.log(sym2 === sym3); // false (son únicos)

Métodos y Propiedades de Symbol

  • Symbol.for(key): Busca o crea un Symbol en un registro global usando una clave (key). Si el Symbol ya existe para esa clave, lo devuelve.
    const sym1 = Symbol.for("app");
    const sym2 = Symbol.for("app");
    console.log(sym1 === sym2); // true (comparten la misma clave)
    
  • Symbol.keyFor(symbol): Devuelve la clave de un Symbol registrado con Symbol.for. Para símbolos no registrados, devuelve "undefined".
    const sym = Symbol.for("app");
    console.log(Symbol.keyFor(sym)); // "app"
    const sym2 = Symbol("local");
    console.log(Symbol.keyFor(sym2)); // undefined
    

Consideraciones

  • No Convertibles a Cadenas Automáticamente: Intentar concatenar un Symbol con una cadena (ej. "hola" + sym) lanza un error. Hay que usar "sym.toString()" o "sym.description".
  • Acceso a Símbolos: Se puede obtener todas las propiedades Symbol de un objeto con "Object.getOwnPropertySymbols()".
  • No Son Verdaderamente Privados: Aunque los Symbol son difíciles de acceder sin la referencia, herramientas como "Object.getOwnPropertySymbols()" pueden exponerlos.