为什么比较("string" > 0)在JavaScript中返回false?



既然"string"是一个非空字符串,它不应该返回true吗?这种比较究竟是如何工作的?

当将字符串与数字进行比较时,JavaScript 会尝试将字符串转换为数字以进行逻辑比较。

"string"转换为数字会导致NaN,并且NaN > 0false

比较运算符

这是有效的,因为类型转换和NaN > 0是假的简单事实。

应用于>运算符时,两个操作数都转换为 Numbers,因此比较变为

Number("string") > 0相当于计算结果为falseNaN > 0

最新更新