【发布时间】:2018-02-05 04:15:09
【问题描述】:
既然“string”是一个非空字符串,它不应该返回true吗?这种比较究竟是如何工作的?
【问题讨论】:
-
你为什么认为它是真的?
标签: javascript string-comparison
既然“string”是一个非空字符串,它不应该返回true吗?这种比较究竟是如何工作的?
【问题讨论】:
标签: javascript string-comparison
在将字符串与数字进行比较时,JavaScript 会尝试将字符串转换为数字以进行逻辑比较。
将"string" 转换为数字会得到NaN,而NaN > 0 是false。
【讨论】:
这是因为类型转换和 NaN > 0 是错误的简单事实。
应用于>运算符时,两个操作数都被强制转换为数字,这样比较就变成了
Number("string") > 0 等价于 NaN > 0,其计算结果为 false。
【讨论】: