Analise o documento HTML abaixo. Nele consta um trecho de có...
<!DOCTYPE html> <html> <body> <script> alert(typeof 1.99 + '-' + typeof 'p' + '-' + typeof true + '-' + typeof null + '-' + typeof P); </script> </body> </html>
Ao abrir o documento em um navegador, o que será exibido na caixa de alerta que será aberta?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Olá! A alternativa correta é a B - number-string-boolean-object-undefined. Vamos entender o porquê.
O código JavaScript no documento HTML está usando a função alert() para exibir o tipo de várias expressões, usando o operador typeof. O operador typeof é uma ferramenta útil em JavaScript para obter o tipo de dado de uma variável ou expressão. Agora vamos analisar cada expressão separadamente:
typeof 1.99: Retorna "number", pois 1.99 é um valor numérico.typeof 'p': Retorna "string", porque 'p' é um caractere dentro de aspas, o que em JavaScript é considerado uma string.typeof true: Retorna "boolean", já quetrueé um dos dois valores booleanos em JavaScript (trueoufalse).typeof null: Retorna "object". Isso pode parecer estranho, mas em JavaScript,nullé considerado um objeto por uma decisão de design da linguagem. Isso é um comportamento conhecido e muitas vezes apontado como um equívoco do JavaScript.typeof P: Retorna "undefined", porquePnão foi definido no código; portanto, seu tipo éundefined.
Por isso, quando você soma (+) todas essas strings, o resultado apresentado no alerta será a concatenação das strings representando os tipos dos valores, que é exatamente "number-string-boolean-object-undefined".
Essa questão requer conhecimento sobre tipos de dados em JavaScript e a forma como o operador typeof funciona. Além disso, é importante notar que a concatenação de strings com outros tipos de dados em JavaScript resulta em uma string que contém as representações textuais desses tipos.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo