【问题标题】:What Javascript type conversions are happening here?这里发生了哪些 Javascript 类型转换?
【发布时间】: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

那么为什么这会评估为假?这里到底发生了什么?

【问题讨论】:

标签: javascript type-conversion


【解决方案1】:

如果一个操作数是数字,另一个操作数是字符串,则the string is converted to a number,然后进行比较。

如果字符串不能转换为数字,则转换为NaN,比较总是返回false。

【讨论】:

    【解决方案2】:

    当要求 javascript 将数字与其他内容进行比较时,它会尝试将“其他内容”转换为数字。在这种情况下,"49px" 的计算结果为 NaN,所以 NaN &lt; 50 是 false。

    【讨论】:

    • 该死,迟了几分钟!
    猜你喜欢
    • 2011-04-16
    • 1970-01-01
    • 2013-03-23
    • 2012-01-29
    • 2023-04-10
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多