Criando Symbols exclusivos
Gere valores com exclusividade garantida.
Criando Symbols exclusivos é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 4 aulas no total.
O que é um símbolo
Um símbolo é um tipo primitivo introduzido no JavaScript moderno. Cada símbolo é único, mesmo quando dois símbolos compartilham a mesma descrição.
const s = Symbol()
console.log(typeof s)Criando um símbolo
Você cria um símbolo chamando a função de símbolo. Ela não é um construtor, portanto você nunca usa a palavra-chave de instanciação com ela.
const id = Symbol()
console.log(typeof id)Descrição opcional
Você pode passar um texto de descrição para ajudar na depuração. A descrição é puramente informativa e não afeta a exclusividade.
const id = Symbol("user id")
console.log(id.description)Todo símbolo é único
Dois símbolos nunca são iguais, mesmo com descrições idênticas. Essa exclusividade garantida é sua característica definidora.
const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)Sem palavra-chave de instanciação
Chamar a função de símbolo como construtor gera um erro, pois os símbolos são valores primitivos, não objetos. Sempre a chame como uma função comum.
const s = Symbol("ok")
console.log(typeof s === "symbol")Símbolos são valores primitivos
O tipo de um símbolo é o texto símbolo. Como outros valores primitivos, os símbolos são imutáveis e não têm propriedades que possam ser alteradas.
const s = Symbol("p")
console.log(typeof s)Lendo a descrição
A propriedade description retorna o texto fornecido ou indefinido se nenhuma descrição tiver sido informada. Ela é somente para leitura.
const named = Symbol("hello")
const anon = Symbol()
console.log(named.description)
console.log(anon.description)Símbolos não podem ser convertidos implicitamente em texto
Os símbolos não são convertidos implicitamente em textos, o que evita usos acidentais. Use String ou toString para obter texto de forma deliberada.
const s = Symbol("tag")
console.log(String(s))
console.log(s.toString())Usando símbolos como constantes
Os símbolos são excelentes valores constantes exclusivos, por exemplo, para representar estados distintos que nunca podem entrar em conflito.
const RED = Symbol("red")
const GREEN = Symbol("green")
console.log(RED === GREEN)Armazenando símbolos
Você pode armazenar símbolos em variáveis, matrizes e como valores dentro de objetos. A exclusividade deles permanece com eles.
const states = [Symbol("on"), Symbol("off")]
console.log(states.length)
console.log(states[0] === states[1])Por que a exclusividade é importante
Como dois símbolos nunca entram em conflito, eles são ideais para chaves que nunca devem colidir com outro código, como exploraremos na próxima lição.
const key1 = Symbol("meta")
const key2 = Symbol("meta")
const obj = {}
obj[key1] = "a"
obj[key2] = "b"
console.log(obj[key1], obj[key2])Verificação rápida
Teste seus conhecimentos sobre a criação de símbolos.
Recapitulação
Recapitulação: Os símbolos são valores primitivos exclusivos.
- Criados chamando Symbol, nunca com new
- A descrição opcional ajuda apenas na depuração
- Cada símbolo é exclusivo
- typeof de um símbolo é symbol
const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)Perguntas Frequentes
A aula “Criando Symbols exclusivos” é grátis?
Sim — o texto completo de “Criando Symbols exclusivos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 4 aulas no total.
O que vou aprender em “Criando Symbols exclusivos”?
Gere valores com exclusividade garantida. Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar JavaScript Academy?
Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Criando Symbols exclusivos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de JavaScript Academy?
Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criando Symbols exclusivos
- Symbols como chaves de objetos
- O registro global de Symbols
- Symbols conhecidos