Javascript 关于平等的困惑

Javascript 关于平等的困惑,javascript,boolean-logic,Javascript,Boolean Logic,我只是想知道结果的正确解释 //所有这些都评估为“正确”! console.logfalse==“0”; console.lognull==未定义; console.log\t\r\n==0; console.log==0 因为您使用的是==,所以它不检查类型,只检查值。在内部,所有这些值都是假值。因此它返回真值 但是,使用===也将检查类型,并在控制台中打印false而不是true,这称为类型强制 当您使用double equals==时,解析器尝试强制两个操作数实现相等 大多数资料都建议使

我只是想知道结果的正确解释

//所有这些都评估为“正确”! console.logfalse==“0”; console.lognull==未定义; console.log\t\r\n==0;
console.log==0 因为您使用的是==,所以它不检查类型,只检查值。在内部,所有这些值都是假值。因此它返回真值


但是,使用===也将检查类型,并在控制台中打印false而不是true,这称为类型强制

当您使用double equals==时,解析器尝试强制两个操作数实现相等

大多数资料都建议使用triple equals===因为它不应用任何类型的强制。如果值的类型不同,则表示它们不相等

回到你的问题:

null、空字符串和0都是假值,这意味着所有值都强制为假。因此,平等性检查将通过。

它实际上完全回答了您的问题