【问题标题】:Looking for type-casting rules in JS在 JS 中寻找类型转换规则
【发布时间】:2026-01-11 02:40:02
【问题描述】:

我正在寻找一套具体的规则来说明什么会自动进行类型转换以及何时进行类型转换。我正在尝试为较新的开发人员提出一些指导方针,例如它刚刚出现:

90 > '100'   // int compare
'90' > 100   // int compare
'90' > '100' // string compare

我能想到的唯一答案是“因为”:)

【问题讨论】:

  • 了解规则会很有趣,但我的指导方针是始终明确。如果您希望将字符串视为 int,请将其设为一个。除了可读性之外没有其他原因。

标签: javascript casting


【解决方案1】:

如果您真的想了解正在发生的事情,那么您应该阅读规范:

关于conventions in that section的注释:

Type(x) 用作“x 的类型”的简写

【讨论】:

    【解决方案2】:

    请注意,'026' < 24 在某些浏览器中可能会返回 true,因为该字符串被视为八进制数(在本例中为 22)。

    理想情况下,您希望始终手动进行类型转换。使用a = ''+a 转换为字符串,或a = parseInt(a,10); 转换为整数。

    这应该是解释,而不是试图解释自动类型转换

    【讨论】:

    • 如果您为js1k 做事,也可以使用a^0a*1 ;)
    • @JuicyScripter 为什么不只是+a
    最近更新 更多