Considere o seguinte trecho de código JavaScript:if (x !== 1...
if (x !== 10) {
document.write("correto");
}
De acordo com o trecho de código, a mensagem correto será impressa se o conteúdo armazenado na variável x for
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - diferente de 10 ou quando o tipo dessa variável não for numérico.
A questão aborda o conceito de comparação estrita no JavaScript, utilizando o operador !==, que compara tanto o valor quanto o tipo da variável. No trecho de código fornecido, a instrução if (x !== 10)
verifica se a variável x
não é igual a 10 e se também não é do mesmo tipo. Isso significa que se x
for qualquer valor diferente de 10, ou se x
for do mesmo valor mas de um tipo diferente (por exemplo, uma string '10' ao invés de um número 10), a condição se tornará verdadeira, e o programa imprimirá "correto".
A alternativa B é correta porque o operador !==
faz a comparação de valor e tipo. Se x
for, por exemplo, 10 (um número), a condição será falsa. Mas se x
for '10' (uma string), a condição será verdadeira, porque mesmo que o valor numérico seja 10, o tipo é diferente (string e não número). Da mesma forma, qualquer outro valor que não seja numericamente 10, fará com que a condição seja verdadeira, e a mensagem será impressa.
Portanto, a mensagem "correto" será impressa se x
for diferente de 10 em valor ou em tipo (ou seja, não numérico).
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
Em javascript, fazer uma comparação com 2 símbolos de igual (==), o resultado será indicado com true se ambos os valores são iguais. Apesar disto, devido às caracteristicas especiais da linguagem, se os valores comparados são de tipos diferente haverá uma conversão de tipos.
Ex:
0 == false //true VIsto que o valor 0 é considerado falso em Javascript, devido à conversão
1234 == '1234' //true Visto que o JavaScript converte a cadeia de caracteres em números e... tornou-se igual novamente!!
Quando utilizamos o operador triplo ( === ) não há conversão de tipos, por isso evita vários problemas já que os valores devem ser 100% iguais.
Ex:
0 === false //false
1234 === '1234' //false
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo