Qual operador de comparação usar em JavaScript: == ou ===?
Olá a todos! Comecei a estudar JavaScript há pouco tempo e me deparei com uma confusão. Em alguns tutoriais dizem que devo usar `==`, e em outros, `===`. Tentei ambos e eles parecem funcionar da mesma forma, mas depois me deparei com um comportamento estranho.
Aqui está um exemplo:
```javascript
console.log(5 == "5"); // true
console.log(5 === "5"); // false
```
Por que isso? Afinal, 5 é um número e "5" é uma string. Eu esperava que ambos retornassem false, mas o primeiro diz true. Ainda mais estranho:
```javascript
console.log(false == 0); // true
console.log(false === 0); // false
console.log(null == undefined); // true
console.log(null === undefined); // false
```
Parece-me que `===` é mais rigoroso e previsível, mas vi muito código no GitHub onde se usa `==`. Qual deles é considerado correto? Quando devo usar a igualdade dupla e quando a tripla? E posso simplesmente usar apenas `===`? Agradeço por uma explicação detalhada com exemplos para que eu finalmente entenda.