javascript - 在 javascript 中执行 "integer "转换/类型转换的惯用方式是什么?

标签 javascript integer idioms

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

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

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

这让我想问:在 Javascript 中将任意值转换为“整数”的最惯用的方法是什么?它应该适用于有符号整数,而不仅仅是非负数。由于整数在 Javascript 中只是伪装的 float 而中断的情况是可以接受的,但应该承认。它不应在任何情况下返回 undefinedNaN(这些不是整数),但对于非数字值则返回 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/

相关文章:

python - 使用 Python 格式化货币

2D整数矩阵的Java最佳结构?

scala - 向包含在 Try 实例中的抛出异常添加更多详细信息的惯用 Scala 方法是什么

c++ - 嵌套 if 或直接返回

for-loop - 检测 'for'循环中最后一个元素的pythonic方法是什么?

javascript - 如何向 React 表示数据已更新?

javascript - sequelize.js 关系验证

javascript - 用户输入输出乘法表

javascript - 如何从对象中提取内容?

flash - 将整数转换为字符串as3