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 (true
oufalse
).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", porqueP
nã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