Considere as instruções abaixo em um bloco JavaScript em que...
Considere as instruções abaixo em um bloco JavaScript em que as variáveis a, b, c e d foram adequadamente declaradas.
a = (1 == "1");
b = (1 === "1");
c = (0 === "");
d = (0 == "");
Pode-se concluir que, após as linhas acima serem executadas, os valores armazenados nas variáveis a, b, c e d serão,
respectivamente,
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a Letra A, ou seja, os valores armazenados nas variáveis a, b, c e d serão, respectivamente, true, false, false e true.
Essa questão aborda um conceito fundamental em JavaScript que é a comparação de valores utilizando os operadores de igualdade == e ===. O operador == compara se os valores são iguais, mas permite a coerção de tipo, ou seja, converte os valores para um tipo comum antes de fazer a comparação. Por outro lado, o operador ===, conhecido como a comparação de igualdade estrita, verifica se os valores são iguais e do mesmo tipo, não permitindo a coerção de tipo.
Na primeira linha de código, a = (1 == "1")
, estamos usando o operador de igualdade ==, que vai retornar true porque 1 e "1" são iguais após a coerção de tipo (o número 1 é convertido para a string "1").
Na segunda linha, b = (1 === "1")
, estamos usando o operador de igualdade estrita ===, que vai retornar false, pois apesar de terem valores numéricos equivalentes, eles são de tipos diferentes (um é número e o outro é string).
Na terceira linha, c = (0 === "")
, novamente usamos o operador de igualdade estrita ===. Aqui, 0 é um número e a string vazia "" é de outro tipo, logo a comparação retorna false porque eles não são do mesmo tipo nem têm o mesmo valor.
Por fim, na quarta linha, d = (0 == "")
, usamos o operador de igualdade ==, que permite a coerção de tipo. A string vazia "" é considerada falsy em JavaScript, assim como o número 0, então após a coerção de tipo, eles são considerados iguais, e a comparação retorna true.
Este conhecimento é essencial para evitar bugs e entender comportamentos inesperados em comparações no JavaScript. Compreender a diferença entre == e === é uma habilidade fundamental para qualquer desenvolvedor que trabalha com esta linguagem.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
O operador "==" não leva em considração o tipo de dados, já o "===" sim.
LETRA A
= -> Operador de atribuição
== -> Operador que verifica se os valores são iguais, por exemplo trur == 1 é verdade
=== -> Operador que verifica se os valores são iguais e do mesmo tipo, por exemplo true === 1 é falso
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo