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:

  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!

Inscrever-se
Notificar de
guest

0 Comentários
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários