JavaScript 中的逻辑运算符:超越布尔结果
在 JavaScript 中,逻辑运算符如 '&&' (AND) 和 '|| ' (OR) 通常返回布尔结果,某些情况可能会导致返回其他对象。
要理解原因,掌握短路求值的概念至关重要。 '&&' 和 '||'是短路运算符,这意味着一旦确定逻辑结果,它们就会停止计算。
在表达式 'X || 中首先评估 Y'、'X'。如果“X”被确定为“true”,则表达式返回“X”而不进行进一步评估。这就是“短路”发挥作用的地方。另一方面,如果“X”为“假”,则计算“Y”,并且表达式返回“Y”。
类似地,“&&”通过返回第一个“true”参数或最后一个“假”参数。
问题源于 JavaScript 对真值和假值的处理。在 JavaScript 中,以下值被视为“false”:“false”、“0”、“-0”、“”、“null”、“undefined”、“NaN”和“document.all”。
因此,如果表达式被计算为“false”,现代实现将返回实际计算的值,而不是像以前版本的 JavaScript 那样返回布尔值“false”表达式。
此行为解释了为什么问题中提供的表达式会返回对象而不是严格的布尔值。如果定义了“obj.fn()”或“obj._”,它将返回该表达式的结果,因为它们不属于被视为“false”的值。
以上是JavaScript 逻辑运算符何时返回对象而不是布尔值?的详细内容。更多信息请关注PHP中文网其他相关文章!