Identificando os tipos de dados com `typeof()` no JavaScript
A função typeof()
no JavaScript é usado para identificar o tipo de um valor ou variável. Ele retorna uma string indicando o tipo do operando.
Sintaxe
typeof(operando)
O operando
pode ser qualquer expressão, variável ou valor literal.
Tipos primitivos
O typeof
pode ser usado para identificar os tipos primitivos no JavaScript:
console.log( typeof(true) ) // Imprime: 'boolean'
console.log( typeof(100) ) // Imprime: 'number'
console.log( typeof('Olá') ) // Imprime: 'string'
console.log( typeof(nada) ) // Imprime: 'undefined'
console.log( typeof({}) ) // Imprime: 'object'
console.log( typeof(BigInt(1000) ) // Imprime: 'bigint'
console.log( typeof(setTimeout) ) // Imprime: 'function'
A função typeof()
apresenta limitações em alguns casos, como com array
, null
e Date
. Nesses casos, ele retorna apenas a descrição genérica 'object'
, o que pode ser impreciso.
Objetos e funções
Para objetos, arrays e funções, o typeof
retorna valores específicos:
console.log( typeof({ nome: 'Arthur' }) ) // Imprime: 'object'
console.log( typeof([1, 2, 3]) ) // Imprime: 'object'
console.log( typeof(function() {}) ) // Imprime: 'function'
Casos especiais
Indentificando o tipo de null
Apesar de ser um valor primitivo, o typeof(null)
retorna 'object'
. Esse comportamento é um bug histórico no JavaScript, que não foi corrigido para manter a compatibilidade retroativa. O null
foi originalmente projetado como uma referência nula para um objeto inexistente, mas hoje é tratado como um tipo primitivo que representa a ausência intencional de valor.
console.log( typeof(null) ) // Imprime: 'object'
Para identificar se uma variável é null
, você pode usar uma comparação direta com o valor null
:
let vazio = null
console.log(vazio === null) // Imprime: true
Essa abordagem é confiável e evita as limitações do operador typeof
ao lidar com valores null
.
Identificando o tipo de Arrays
O typeof()
de um array retorna 'object'
, pois arrays são tecnicamente objetos no JavaScript. No entanto, para verificar especificamente se algo é um array, é recomendado o uso de Array.isArray()
.
console.log( typeof [1, 2, 3] ) // Imprime: 'object'
console.log( Array.isArray([1, 2, 3]) ) // Imprime: true
Conclusão
A função typeof()
é uma ferramenta útil para identificar tipos de dados no JavaScript, mas é importante estar ciente de suas limitações, como o caso de null
e arrays. Use-o em conjunto com outras verificações para obter resultados mais precisos.