Another question 询问Javascript中代码片段a >>> 0
的含义。事实证明,这是一种确保变量是无符号 32 位整数的聪明方法。
这很漂亮,但我不喜欢它有两个原因。
- 表达的意图不清楚,至少我不清楚。
- 它不适用于负数
这让我想问:在 Javascript 中将任意值转换为“整数”的最惯用的方法是什么?它应该适用于有符号整数,而不仅仅是非负数。由于整数在 Javascript 中只是伪装的 float 而中断的情况是可以接受的,但应该承认。它不应在任何情况下返回 undefined
或 NaN
(这些不是整数),但对于非数字值则返回 0
。
最佳答案
parseInt
是“最惯用的”方式,因为它准确地描述了你想要它做什么。 parseInt
的缺点是,如果您输入非数字字符串,它会返回 NaN
。
另一种方法是按位或按 0 (| 0
),这也适用于负数。此外,在非数字字符串上使用它时,它会返回 0
。另一个优点是在实数上使用它比 parseInt
快一点;给它喂绳子时速度较慢。
12.4 | 0
输出12
-12.4 | 0
输出-12
“12.4” | 0
输出12
“不是数字” | 0
输出0
关于javascript - 在 javascript 中执行 "integer "转换/类型转换的惯用方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3084760/