const foo = "test"
const bar = "test"
console.log(foo == bar) //true
console.log(foo === bar) //true O valor e o tipo de ambos foo e bar é igual. Portanto, o resultado é true para ambos.
Exemplo 2:
const number = 1234
const stringNumber = '1234'
console.log(number == stringNumber) //true
console.log(number === stringNumber) //false
O valor de number e stringNumber parece semelhante aqui. No entanto, o tipo de number é Number e tipo de stringNumber é string. Mesmo que os valores sejam iguais, o tipo não é o mesmo. Portanto, um == verificar retornos true, mas quando marcado por valor e tipo, o valor é false.
Exemplo 3:
console.log(0 == false) //true
console.log(0 === false) //false Razão: mesmo valor, tipo diferente. Coerção de tipo
Este é um caso interessante. O valor de 0 quando verificado com false é igual. É assim porque 0 e false têm o mesmo valor para JavaScript, mas quando marcado para o tipo e valor, o valor é falso porque 0 é um number e false é boolean.
Exemplo 4:
const str = ""
console.log(str == false) //true
console.log(str === false) //falseO valor da cadeia vazia e false é o mesmo em JavaScript. Conseqüentemente, == retorna verdadeiro. No entanto, o tipo é diferente e, portanto, === retorna falso.
Quando você deve usar == e quando você deve usar ===?
Em caso de dúvida, use ===. Isso o salvará de uma tonelada de possíveis bugs.
Se você estiver suportando um caso de uso em que possa ser um pouco tolerante com o tipo de dados recebidos, use ==. Por exemplo, se uma API aceitar ambos "true" e true do cliente, use ==. Em suma, não use == a menos que você tenha um forte caso de uso para isso.
Aqui está uma útil tabela de verdade sobre JavaScript para sua referência e para mostrar o quão complicada é a igualdade no JavaScript:
Se você gostou deste artigo, siga-me no twitter para obter atualizações.
P: Quanto espaço será liberado quando a Grã-Bretanha deixar a UE?
.
.
.A: 1 GB#DevJoke #Não é uma brincadeira
– Shruti Kapoor (@ shrutikapoor08) 4 de outubro de 2019
