Avatar ·

Qual a diferença entre == e === em JavaScript? Quando usar cada operador?

Olá a todos! Comecei a estudar JavaScript e me deparei com uma situação confusa. No código, vejo frequentemente dois operadores de comparação parecidos: `==` e `===`. No começo, pensei que faziam a mesma coisa, mas depois notei um comportamento estranho. Por exemplo, escrevi este código: ```javascript console.log(5 == "5"); // true console.log(5 === "5"); // false ``` Por que no primeiro caso o JavaScript diz que o número 5 e a string "5" são iguais, mas no segundo não? Afinal, são tipos de dados diferentes! Ou outro exemplo: ```javascript console.log(false == 0); // true console.log(false === 0); // false ``` Fiquei completamente confuso. Então `false` e `0` são a mesma coisa? Mas não é assim! `false` é um valor booleano, e `0` é um número. Expliquem, por favor, qual é a diferença entre esses operadores. Quando devo usar `==` e quando `===`? E por que o JavaScript tem duas formas diferentes de comparação? Ficarei muito grato por uma explicação clara com exemplos.