ES6 - Symbol.for ()

Esta função cria um símbolo e adiciona ao registro. Se o símbolo já estiver presente no registro ele retornará o mesmo; caso contrário, um novo símbolo é criado no registro global de símbolos.

Sintaxe

Symbol.for(key)

Onde, key é o identifier do símbolo

Exemplo

O exemplo a seguir mostra a diferença entre Symbol() e Symbol.for()

<script>
   const userId = Symbol.for('userId') // creates a new Symbol in registry
   const user_Id = Symbol.for('userId') // reuses already created Symbol
   console.log(userId == user_Id)    
   const studentId = Symbol("studentID") // creates symbol but not in registry
   const student_Id = Symbol.for("studentID")// creates a new Symbol in registry
   console.log(studentId == student_Id)
</script>

A saída do código acima será conforme mostrado abaixo -

true
false