javascript - JavaScript : ~~n, n|0 或 Math.floor(n) 中的底数?

标签 javascript integer

我最近发现了除 Math.floor(n) 之外的一些其他方法来删除 JavaScript 中数值的小数部分,特别是双按位 NOT 运算符 ~~n 并执行按位或 0 n|0

我想知道这些方法之间有什么区别,以及推荐一种方法优于另一种方法的不同场景是什么。

最佳答案

所有按位运算符的操作数都转换为带符号的 32 位整数:

Math.floor(2147483648) // 2147483648
2147483648 | 0         // 2147483648
~~2147483648           // 2147483648

Math.floor(2147483649) // 2147483649
2147483649 | 0         // -2147483647
~~2147483649           // -2147483647

所以使用 Math.floor();

关于javascript - JavaScript : ~~n, n|0 或 Math.floor(n) 中的底数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890486/

相关文章:

javascript - 在不扩展组件的类中更新 React 中的变量

javascript - 如何使用特殊键监视 onkeyup/down 事件(返回零 keyCode)?

javascript - setTimeout 在我停止页面之前不会启动

java - 如何将整数(例如 19000101 )转换为 java.util.Date?

检查 Integer 值是否为 null 时发生 Java 异常

java - 将每一行从整数列表转换为整数数组?

Java:整数相等检查

javascript - 通过书签在 Chrome 中打开多个标签页

javascript - 在javascript中将typedarray复制到数组的最快方法?

python - 以二进制打印整数张量