“loose equality”指宽松相等:在比较两个值是否“相等”时,允许进行隐式类型转换(type coercion)。最常见于 JavaScript 的 == 运算符:它会在比较前尝试把两边转换成可比较的类型,因此结果有时会出人意料。
(对应概念:strict equality / 严格相等,通常指 ===,不做隐式类型转换。)
/luːs ɪˈkwɑːləti/
In JavaScript, loose equality can make 0 == false evaluate to true.
在 JavaScript 中,宽松相等可能会让 0 == false 的结果变成 true。
Because loose equality performs type coercion, relying on it in complex conditions may introduce subtle bugs.
由于宽松相等会进行类型强制转换,在复杂条件判断里依赖它可能会引入难以察觉的 bug。
“loose”原义为“松的、不严格的”,在这里引申为“规则更宽、限制更少”;“equality”意为“相等”。合起来表示一种不那么严格的相等判断。该说法主要在编程语境中流行,用来区分 JavaScript 中 ==(宽松)与 ===(严格)的比较方式。
== 的风险与使用原则。 == 与 === 条目中解释“loose/strict equality”的差异与示例。