什么时候JavaScript ==比===更有意义?

bry*_*sai 17 javascript equality weak-typing identity-operator

由于这等于运算符(== VS ===)应该在JavaScript中的比较中使用?表示它们基本相同,除了' ==='也确保类型相等,因此' =='可能执行类型转换.在Douglas Crockford的JavaScript:The Good Parts中,建议始终避免' =='.但是,我想知道设计两组相等算子的原始思想是什么.

您是否看到过使用' =='实际上比使用'更合适' ===的情况?

Sar*_*raz 17

考虑比较数字或字符串时的情况:

if (4 === 4)
{
  // true
}
Run Code Online (Sandbox Code Playgroud)

if (4 == "4")
{
  // true
}
Run Code Online (Sandbox Code Playgroud)

if (4 === "4")
{
  // false
}
Run Code Online (Sandbox Code Playgroud)

这适用于对象和数组.

因此,在上述情况下,您必须明智地选择是否使用==或===

  • @bryantsai:他给了你 - 比较字符串和数字而不用手动使用`parseInt`. (5认同)

Mat*_*ias 5

简单的答案是,当你想要在比较期间发生类型强制时,'=='比'==='更有意义.

一个很好的例子是在URL查询字符串中传递的数字.例如,如果您有分页内容,并且page查询参数保存当前页码,那么您可以检查当前页面,if (page == 1) ...即使page实际上"1"不是1.