[DICAS] Javascript =, == ou ===?

Olá pessoas,

Esse assunto é algo que pode dar um nó na cabeça de quem está começando, sobre quando devemos usar =, == ou ===? E a resposta é simples, depende.

=
Se você quer atribuir um valor para uma variável, ou seja, guardar um valor ou resultado dentro de uma variável deve usar o sinal de =, por exemplo:

image

Aqui o 10 é atribuido a variável valor, em outras palavras guardei o 10 dentro da variável valor.

==
O sinal de “igual igual” é utilizado quando queremos comparar se um valor é igual a outro, por exemplo:

image

Na imagem abaixo usei = para atribuir o valor 10 a variável numero, ou seja, agora a variável numero vale 10.
image

Já aqui usei == para comparar (verificar) se o valor da variável número é igual a 10
image

Porém, aqui temos uma particularidade do Javascript, se eu usasse o código da imagem abaixo o resultado seria verdadeiro ou falso?

image

Nesse caso estamos perguntando (comparando) se o número 10 é igual a “10” e temos como resultado:

image

É verdadeiro, pois com 2 iguais o Javascript apenas compara se o “valor” é o mesmo, mas deixa os tipos dos valores fora da comparação.

===
Como você deve ter imaginado com 03 sinais de igual o Javascript compara se o valor e o tipo são iguais, agora a comparação 10 === "10" retornará falso, o valor até pode ser igual, ou seja, 10 e “10”, porém o tipo é diferente onde temos o 10 sendo um tipo int (inteiro) e o "10" sendo do tipo string (caractere).

image

São alguns detalhes que podem fazer a diferença em determinadas situações, para praticar responda as questões do desafio abaixo com verdadeiro ou falso e poste nos comentários, por exemplo:

10 == 10 (verdadeiro)
20 === 21 (falso)


Desafio

10 == 2
21 == “21”
21 === 21
“4” === 4
“VTEX” == “VTEX”
“VTEX” === “VTEX”

Espero ter ajudado :sweat_smile:

30 Likes

Resposta :sweat_smile:
false
true
true
false
true
true

3 Likes

Bom de mais :ok:

2 Likes

Oi @willy , certinho :grin:

1 Like

Resposta:
false
true
true
false
true
true

2 Likes

basicamente então:
= → atribuição
== → verificação de igualdade desconsiderando tipo
=== → verificação de igualdade considerando tipo

4 Likes

Excelente explicação! Parabéns!

1 Like

Eu estava mesmo com essa dúvida porque o professor não explicou em detalhes nas aulas de introdução ao javascript. Valeu!

Minhas respostas

10 == 2 --------------------> falso
21 == “21” ----------------> verdadeiro
21 === 21 ----------------> verdadeiro
“4” === 4 -----------------> falso
“VTEX” == “VTEX” ----> verdadeiro
“VTEX” === “VTEX” → verdadeiro

2 Likes

Vlw pela replicação! :wink:

1 Like

Obrigado pela explicação :nerd_face:

1 Like

Boa, isso mesmo.

Oi @cristiane.dsc,

As respostas do desafio estão corretas.

Isso é verdade, acredito que por conta do tempo alguns pontos acabam não sendo detalhados e imagina qualquer dúvida só chamar.

1 Like

Obrigada pela explicação, estava bem confusa nesse conteúdo.

1 Like

Pessoal, já sabemos que um erro comum é colocar = dentro da clausula if (boolean) em vez de == ou ===. Aprendi hoje que esse erro pode ser ainda pior se estivermosm usando um array na comparação. Isso porque esse erro zera a propriedade do array apagando os elementos. vejam um exemplo que fiz para ilustrar:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        let arr = [1, 2, 3];
        console.log(arr.length); // 3
        if (arr.length = 0) { // should be arr.length == 0 or arr.length === 0
            console.log("Ops!");
        }

        console.log(arr.length); // 0
    </script>
</body>
</html>
1 Like