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/

相关文章:

Java - 如何将由空格分隔的整数读入数组

java - 使用 Java 8 流的两个 int 数组的笛卡尔积

C 函数 : Count the occurrences of a digit in an integer

javascript - 如果字符串的任何变体在 URL 中匹配,则返回 true

javascript - jquery中如何向包含字符串的变量附加一个额外的字符

javascript - 如何在不执行的情况下使函数可链接?像 `obj.fn.fn` 而不是 `obj.fn().fn()`

java - 如何将字符串转为整数并相加?

javascript - 单击菜单在 <div> 中打开 pdf

javascript - 需要一个 json 文件导致错误 : Cannot find module

python - Python 中总是 int 除 int = float