Qual a diferença entre typeof e instanceof em JavaScript

Neste artigo você vai aprender qual a diferença entre typeof e instanceof em JavaScript, e quanto utilizar os operadores

diferença entre typeof e instanceof capa

Fala programador(a), beleza? Bora aprender mais sobre os operadores de JavaScript!

Em JavaScript temos uma diferença bem categorica entre tipos de dados

Esta diferença consiste em duas partes:

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min
  1. Built in types: Number, String, Boolean e etc;
  2. Custom types: Tipos que criamos, pode ser uma classe, por exemplo;

Então para tipos normais, ou seja, os classificados como built in, sempre vamos preferir utilizar o typeof, pois ele vai declarar exatamente o tipo do dado

Já quando criamos uma classe e queremos saber seu ancestral, por exemplo, a melhor escolha é o instanceof

Veja alguns exemplos:

const x = 10

console.log(typeof x) // number
console.log(x instanceof Number) // false

class Person {}

const matheus = new Person()

console.log(typeof matheus) // object - muito vago
console.log(matheus instanceof Person) // true - mais objetivo

Veja que no exemplo acima um número, da variável x, não é considerado instancia de Number, seu objeto pai

Mas o typeof nos dá seu tipo de forma certeira

Já no segundo exemplo temos o tipo do dado como object, o que pode ser vago em alguns casos

Mas com o instanceof conseguimos detectar qual a classe pai do objeto, e isso pode nos ajudar mais do que uma simples resposta do tipo de dado

Conclusão

Neste artigo você viu qual a diferença entre typeof e instanceof em JavaScript

Basicamente é aconselhado utilizar typeof para tipos de dado simples (textos, números e booleanos)

E o instanceof para dados mais complexos, como instâncias de uma classe

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias! Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias. O link acima contém um cupom de desconto para os cursos!

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares