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

fma*_*ark 6 javascript integer idioms

另一个问题是关于a >>> 0Javascript中代码片段的含义.事实证明,这是一种确保变量是无符号32位整数的聪明方法.

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

  • 表达的意图并不清楚,至少对我来说不是这样.
  • 它不适用于负数

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

Mar*_*pel 4

parseInt是 \xe2\x80\x9c 最惯用的 \xe2\x80\x9d 方式,因为它准确地描述了你想要它做什么。缺点parseIntNaN如果输入非数字字符串,它会返回。

\n\n

另一种方法是按位或运算 0 ( | 0),这也适用于负数。此外,0当在非数字字符串上使用它时,它会返回。parseInt另一个优点是它比在实数上使用它要快一些;给它喂线时速度较慢。

\n\n
    \n
  • 12.4 | 0输出12
  • \n
  • -12.4 | 0输出-12
  • \n
  • "12.4" | 0输出12
  • \n
  • "not a number" | 0输出0
  • \n
\n