Qual operador de comparação usar em JavaScript: == ou ===?
Olá a todos! Comecei a estudar JavaScript e me deparei com uma situação confusa. Parece que existem dois operadores para comparação: igual duplo (==) e igual triplo (===). Mas eles funcionam de forma diferente, e não consigo entender quando usar qual.
Aqui está um exemplo que me confundiu:
```javascript
console.log(5 == "5"); // true
console.log(5 === "5"); // false
```
Por que no primeiro caso 5 e "5" são considerados iguais, mas no segundo não? Afinal, são número e string, tipos de dados diferentes! Eu pensei que a comparação deveria ser estrita.
Outro exemplo:
```javascript
console.log(false == 0); // true
console.log(false === 0); // false
```
Isso é ainda mais estranho: false acaba sendo igual a zero? Mas false é um valor booleano, e 0 é um número. Como isso é possível?
Li que == faz coerção de tipos, mas o que isso significa na prática? E quando isso pode ser útil? Em alguns tutoriais, dizem que é melhor sempre usar === para evitar erros. Mas então para que serve ==?
Me ajudem, por favor.