Como o operador typeof funciona e qual é o bug typeof null em JavaScript?
O operador
typeof em JavaScript é uma ferramenta simples e poderosa que permite ver o tipo de dado de uma variável ou valor. Sempre retorna uma string indicando o tipo.
Vamos dar uma olhada em alguns exemplos:
let num = 42;
console.log(typeof num); // "number"
Neste primeiro exemplo, criamos uma variável chamada num e atribuímos a ela o número 42. Quando você usa o operador typeof na variável chamada num, ele retornará a string number.
Aqui está outro exemplo de uso do operador typeof na variável chamada isUserLoggedIn:
let isUserLoggedIn = true;
console.log(typeof isUserLoggedIn); // "boolean"
Quando você usa o operador typeof na variável isUserLoggedIn, ele retornará uma string boolean porque o booleano true foi atribuído à variável.
Usar o operador typeof pode ser especialmente útil quando você está depurando ou tentando entender com que tipo de dado você está trabalhando no seu código.
No entanto, há uma peculiaridade bem conhecida em JavaScript quando se trata de null.
Vamos dar uma olhada em um exemplo:
let exampleVariable = null;
console.log(typeof exampleVariable); // "object"
Neste exemplo, temos uma variável chamada exampleVariable e atribuímos a ela o valor null. Mas quando usamos o operador typeof, ele retorna a string object.
Isto é amplamente considerado um bug em JavaScript, datado dos seus primeiros dias. A razão para esse comportamento está enraizada na forma como o JavaScript foi originalmente projetado.
Quando a linguagem foi implementada pela primeira vez, valores como null eram representados como um tipo especial de objeto, levando a esse resultado inesperado.
Infelizmente, isso se tornou parte da linguagem e, embora seja confuso, é algo que você precisará estar ciente.Este módulo não possui perguntas. Marque como concluído.