代码之家  ›  专栏  ›  技术社区  ›  fmark

在javascript中执行“整数”转换/类型转换的惯用方法是什么?

  •  6
  • fmark  · 技术社区  · 14 年前

    Another question 询问代码片段的含义 a >>> 0 在javascript中。事实证明,这是一种确保变量是无符号32位整数的巧妙方法。

    这很整洁,但我不喜欢它有两个原因。

    • 这个表达的意图不清楚,至少对我来说不清楚。
    • 它不适用于负数

    这让我问: 在JavaScript中,将任意值转换为“整数”最惯用的方法是什么? 它应该适用于有符号整数,而不仅仅是非负数。由于整数只是以JavaScript伪装的浮动而中断的情况是可以接受的,但应该得到确认。它不应该回来 undefined NaN 在任何情况下(这些不是整数),但返回 0 对于非数字值。

    1 回复  |  直到 14 年前
        1
  •  4
  •   Marcel Korpel    14 年前

    parseInt 是__最惯用的__方式,因为它准确地描述了您想要它做什么。缺点 帕林特 它会回来吗 NaN 如果输入非数字字符串。

    另一种方法是按0进行逐位运算( | 0 ,也适用于负数。而且,它还会回来 0 在非数字字符串上使用它时。另一个优点是它比 帕林特 当在实数上使用它时,它会变慢。

    • 12.4 | 0 输出 12
    • -12.4 | 0 输出 -12
    • "12.4" | 0 输出 十二
    • "not a number" | 0 输出