SóProvas


ID
5413300
Banca
FGV
Órgão
TCE-AM
Ano
2021
Provas
Disciplina
Programação
Assuntos

Considere o código JavaScript exibido logo abaixo.


var x1 = 16;

var x2 = "16";

var x3 = [1,2,3];


Usando as definições acima, analise as expressões a seguir.


x3[0] == 1

x1 == x2

x1 === x2

true == x1

true == x3[0]


Respectivamente, os valores retornados pelas expressões acima são:

Alternativas
Comentários
  • x3[0] == 1 -> true, pois o primeiro elemento to array é 1.

    x1 == x2 -> true, porque o == não leva em consideração o tipo do dado.

    x1 === x2 -> false, porque o === leva em consideração o tipo do dado.

    true == x1 - > false - Eu não sei por quê! rsrsrs

    true == x3[0] -> true - acredito que seja porque qualquer valor comparado com um índice deve ser verdadeiro... me corrijam se estiver errado xD

  • x3[0] == 1 -> true, pois o primeiro elemento to array é 1.

    x1 == x2 -> true, porque o == realiza conversão automatica de string para int .

    x1 === x2 -> false, porque o === realiza comparação estrita impedindo que ocorra algum tipo de conversão.

    true == x1 - > false - porque true é tipo booleano e 1 é tipo de dado integer

    true == x3[0] -> true - realiza conversão de 1 para true (true =1 false=0)

  • As 3 primeiras explicações da @tatiana:

    x3[0] == 1 -> true, pois o primeiro elemento do array é 1.

    x1 == x2 -> true, porque o == realiza conversão automática de string para int .

    x1 === x2 -> false, porque o === realiza comparação estrita impedindo que ocorra algum tipo de conversão.

     

    Corrigindo as 2 últimas:

    true == x1 - > false - porque true é convertido para 1 que é diferente de 16

    true == x3[0] -> true - realiza conversão de true para 1 que é igual ao primeiro elemento de x3

  • ✅Gabarito(D)  

    Sei que já tem alguns comentários bons, mas achei conveniente deixar mais claro a definição do operador "===".

    Operador "==="

    O uso do operador "===" retorna VERDADEIRO caso os operandos sejam iguais e do mesmo tipo. No caso acima os operandos são iguais mais de tipos diferentes. Um é do tipo Number e outro do tipo String.

    Fonte: Q1116000

    Tipos de Dados

    São seis tipos de dados chamados primitivos: boolean, null, undefined, number, string, symbol

    Fonte: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Grammar_and_types

  • Força!

    var x1 = 16;

    var x2 = "16";

    var x3 = [1,2,3];

    x3[0] == 1 -> true, pois o primeiro elemento to array é 1.

    x1 == x2 -> true, porque o == realiza comparação apenas de valor.

    x1 === x2 -> false, porque o === realiza comparação de valor e tipos.

    true == x1 - > false - porque o true e booleano e x1 é igual a 16.

    true == x3[0] -> true - realiza true e a primeira posição do array é 1. Sabemos que quando é 1 => (true =1 false=0)

  • o Leandro Henrique foi perfeito na resposta!!

    Cuidado, isso é interessantíssimo: na comparação com == para tipos primitivos diferentes, dos tipos number, boolean ou String, o JS vai tentar converter as variáveis para number. No caso da letra D: true == 16 vai resultar em 1 == 16, o que dará false!

    Obs.: Quem tiver o livro "Estrutura de Dados e Algoritmos com JavaScript" da Loiane Groner, 2ª Edição, dá uma olhada no capítulo 1, na página 39, que ela explica bem direitinho essa parte :-)