Avatar ·

在JavaScript中应该使用哪个比较运算符:== 还是 ===?

大家好!我刚开始学习JavaScript,遇到了困惑。有些教程说应该使用 `==`,而另一些则说用 `===`。我试了两种,它们看起来工作方式相同,但后来我遇到了奇怪的行为。 例子如下: ```javascript console.log(5 == "5"); // true console.log(5 === "5"); // false ``` 为什么会这样?5是数字,而"5"是字符串。我原以为两者都会返回false,但第一个返回了true。更奇怪的是: ```javascript console.log(false == 0); // true console.log(false === 0); // false console.log(null == undefined); // true console.log(null === undefined); // false ``` 我觉得 `===` 更严格且可预测,但我在GitHub上看到很多代码使用了 `==`。哪个被认为是正确的?什么时候应该使用双等号,什么时候使用三等号?是否可以完全只用 `===`?希望得到详细的解释和例子,让我最终弄明白。