bruno franco icon rnoblog
postslivrossobre
Carregando

brnoblog


© 2025 Criado por Bruno Franco

Tipo primitivo Symbol do JS: conhecia esse tipo?

Escrito por Bruno Franco | Publicado em 28 de junho de 2024 às 08:31


No ecossistema JavaScript, existem diversos tipos de dados primitivos que todos conhecemos, que são “comuns” na maioria das linguagens, tais como number, string, boolean, null, e mais específico, undefined. Porém, há um outro tipo que de todos é o menos explorado, sendo o Symbol.

O nome diz muito e também não diz nada, afinal o que é um Symbol?

Introduzido no ECMAScript 2015 (ES6), o Symbol é um tipo de dado primitivo cujo valor é único e imutável. Eles são frequentemente utilizados para identificar propriedades de objetos de forma que não haja colisões de nomes.

Para criar um Symbol, utiliza-se a função Symbol():

const symbol1 = Symbol();
const symbol2 = Symbol('description');

Cada vez que Symbol() é chamado, um valor de Symbol único é gerado. Mesmo que dois Symbols sejam criados com a mesma descrição, eles serão diferentes entre si:

const symbol1 = Symbol('example');
const symbol2 = Symbol('example');

console.log(symbol1 === symbol2); // false

E quando é utilizado?

Eles podem ser usados para evitar colisões de nomes e proporcionar um maior grau de encapsulamento e segurança, especialmente em bibliotecas e frameworks.

Ao usar Symbols como propriedades de objetos, evita-se que essas propriedades sejam acessadas ou sobrescritas acidentalmente, já que os Symbols são, por padrão, não enumeráveis.

let object = {};
let id = Symbol('id');

meuObjeto[id] = 12345;

console.log(object[id]); // 12345
console.log(object); // { [Symbol(id)]: 12345 }

Muitas APIs modernas, como iteradores e descritores de propriedade, utilizam Symbols. Permitem utilizar de outras propriedades da função que podem auxiliar no desenvolvimento da aplicação, como isRegExp, iterator, hasInstance etc.

Caso queira se aprofundar, recomendo a leitura no site oficial da MDN: Símbolo.

Minhas redes


Últimas publicações


Código com Qualidade: Princípios DRY, KISS e YAGNI

09 de agosto de 2025 às 10:37

Otimização no React / React Native: quando usar useMemo, useCallback e memo

23 de março de 2025 às 21:24

Tudo que aprendi com o livro “Dicas de carreira para devs”

03 de março de 2025 às 22:29

Buscar por categoria


Livro

Algoritmo

Qualidade de Código

TypeScript

Web

Carreira

Qualidade de Vida

Java

JavaScript

Projeto

Estrutura de Dados

Back-end

Front-end