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

时间:2010-06-21 12:50:27

标签: javascript integer idioms

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

这很漂亮,但我不喜欢它有两个原因。

  • 表达的意图不明确,至少不是我。
  • 它不适用于负数

这让我想问:在Javascript中将任意值转换为“整数”的最惯用方法是什么?它应该适用于有符号整数,而不仅仅是非负数。由于整数只是在Javascript中伪装成浮点这一事实导致的这种情况是可以接受的,但是应该被承认。它不应该在任何情况下返回undefinedNaN(这些不是整数),而是返回0非数字值。

1 个答案:

答案 0 :(得分:4)

parseInt是“最惯用”的方式,因为它准确地描述了您希望它做什么。 parseInt的缺点是,如果输入非数字字符串,则返回NaN

另一种方法是逐位ORing 0(| 0),这也适用于负数。此外,它在非数字字符串上使用时返回0。另一个优点是,在实数上使用时,它比parseInt快一点;喂它时它会慢一些。

  • 12.4 | 0输出12
  • -12.4 | 0输出-12
  • "12.4" | 0输出12
  • "not a number" | 0输出0
相关问题