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.