我最近发现了除 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/