Neste artigo você vai aprender qual a diferença entre typeof e instanceof em JavaScript, e quanto utilizar os operadores
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:
- Built in types: Number, String, Boolean e etc;
- 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!