Questão nº 22
Questão de Desenvolvimento de Sistemas · FGV SEFAZ-MG 2022 - Tarde (nº 22)
FGV2022Auditor Fiscal - Tecnologia da InformaçãoDesenvolvimento de Sistemas
Gabarito: Ever comentário ↓
Considere as seguintes expressões usando a linguagem javascript:
1 == '1' e 1 === '1'
Os resultados são, respectivamente,
- A1 e 1
- Btrue e true
- C'1' e '1'
- Dfalse e false
- Etrue e false (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Em JavaScript, o operador == (igualdade solta) compara apenas os valores, tentando converter os tipos de dados se forem diferentes. Já o operador === (igualdade estrita) compara tanto os valores quanto os tipos de dados, sem realizar nenhuma conversão.
- (A) Incorreta: Os resultados de comparações em JavaScript são valores booleanos (
trueoufalse), e não os próprios números ou strings comparados. - (B) Incorreta: A segunda expressão
1 === '1'resulta emfalseporque, apesar de terem o mesmo valor numérico, os tipos de dados são diferentes (número e string), e o operador===exige que ambos sejam idênticos. A armadilha da banca aqui é não compreender que o operador===é mais rigoroso e não realiza conversão de tipos, levando a pensar que ambos os resultados seriamtrue. - (C) Incorreta: Assim como na alternativa A, o resultado de uma comparação é um valor booleano, indicando se a condição é verdadeira ou falsa.
- (D) Incorreta: A primeira expressão
1 == '1'resulta emtrueporque o operador==converte a string'1'para o número1antes de comparar, tornando-os iguais em valor. - (E) Correta: A expressão
1 == '1'retornatrueporque o JavaScript converte a string'1'para o número1antes da comparação de valores. A expressão1 === '1'retornafalseporque, embora os valores sejam numericamente equivalentes, seus tipos de dados são diferentes (número vs. string), e o operador===exige igualdade de tipo e valor.
Fonte: FGV SEFAZ-MG 2022 - Tarde Auditor Fiscal - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.