我应该在Javascript中使用==还是===?

Geo*_*rge 5 javascript comparison boolean equals console.log

我正在使用codecademy学习Javascript,并且进行了一些比较,而对于我的代码,我做了:

`console.log(1 == 2)`
Run Code Online (Sandbox Code Playgroud)

它又回来了False。我也做了:

`console.log(2*2 === 3)`
Run Code Online (Sandbox Code Playgroud)

那也回来了False。为了检查我没有记错,我做了:

`console.log(1 == 1)`
Run Code Online (Sandbox Code Playgroud)

然后返回True 说明指示告诉我===等于。

使用==代替有什么问题===吗?而且,哪个更好用?为什么?

感谢你给与我的帮助!

Lar*_*ert 4

使用 == 仅比较值,=== 还比较变量的类型。

1 == 1 -> true
1 == "1" -> true
1 === 1 -> true
1 === "1" -> false, because 1 is an integer and "1" is a string.
Run Code Online (Sandbox Code Playgroud)

如果您必须确定函数返回 0 还是 false,则需要 ===,因为 0 == false 为 true,但 0 === false 为 false。

  • 只有正确理解所发生的事情。假设`===`比较类型,发现不同的类型,所以它只返回`false`。但是,如果“==”不比较类型,而只比较值,则值仍然不匹配。所发生的情况是,它们都从比较类型开始,并且当类型匹配时它们的行为相同。但是,当类型不匹配时,`===` 会放弃,但 `==` 会开始类型强制转换过程,每次更改类型时都会进行递归比较。最终操作数被简化为相同的类型,并且您可以得到值比较。 (4认同)
  • 他们都比较类型。不同之处在于,当类型不匹配时,“==”*强制*将值转换为匹配类型。 (2认同)