【发布时间】:2011-08-24 13:40:27
【问题描述】:
我在编写的脚本中发现了一个错误,我无法准确找出导致问题的原因。具体来说:
"49px" < 50 === false
我可以在这里想到两种不同的转换:
49 < 50 === true
"49px" < "50" === true
"49" < 50 === true // just for the hell of it
我修复了它:
parseInt("49px") < 50 === true
那么为什么这会评估为假?这里到底发生了什么?
【问题讨论】:
-
修复不足。 Number("49px") 发生,parseInt/Float 表现不同
-
你没有在你的解析整数中指定一个基数?! developer.mozilla.org/en/JavaScript/Reference/Global_Objects/… 趁现在还不算晚!
-
@user422039:查看
parseInt的文档,它工作正常且符合预期。Number("49px")不会调用parseInt,它会将字符串解释为一个精确的数字。 -
重读我的评论,原始变体代码没有使用任何 parseXXX 函数。
标签: javascript type-conversion