Avatar ·

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.