执行模运算的其他方法

Dev*_*no1 5 javascript performance modulo

前段时间我已经看到了使用位运算符执行模运算的技巧.但是现在我不能以任何方式执行正确的操作.谁知道怎么做?从我记得它比使用%更快.

jAn*_*ndy 10

"技巧"是将值二进制AND为1.任何奇数必须将第一位设置为1.

所以

var foo = 7;

if( foo & 1 ) { // true
}
Run Code Online (Sandbox Code Playgroud)

使用按位AND在几乎所有平台/浏览器中都具有更好的性能.

for(var loop = 0; loop < 10; loop++) {
    if( loop & 1 ) {
        console.log('I am ', loop, ' and I am odd!');
    }
}
Run Code Online (Sandbox Code Playgroud)


bor*_*ble 8

您可以通过与(2 ^ k)-1进行AND运算来计算2 ^ k(2的幂)的模数.