我一般不喜欢微基准测试.但这一个有一个非常有趣的结果.
http://ernestdelgado.com/archive/benchmark-on-the-floor/
它表明这Math.floor是在Javascript中计算楼层的最慢方式.~~n,n|n,n&n全部为快.
这看起来非常令人震惊,因为我希望在今天的现代浏览器中实现Javascript的人会是一些相当聪明的人.
对于其他方法无法做到的事情,地板是否重要?有没有理由使用它?
在我之前的问题中接受的答案(在javascript中生成随机整数的最快方法是什么?),我想知道一个数字如何通过符号丢失其小数|
.
例如:
var x = 5.12042;
x = x|0;
Run Code Online (Sandbox Code Playgroud)
那个数字5到底是怎么回事?
更多例子:
console.log( 104.249834 | 0 ); //104
console.log( 9.999999 | 0 ); // 9
Run Code Online (Sandbox Code Playgroud) 可能的重复:
在 JavaScript 中我会在哪里使用按位运算符?
在c/c++ 按位操作比正常(算术)操作(在低性能处理器显著ATLEAST)更快。同样适用于js? 我不认为它在 c 中更快的原因是按位运算是硬连线的,通常在 1 个处理器周期内完成。但是js在没有任何此类硬件(我的意思是寄存器)访问的浏览器中运行。我不确定(大约 70% 确定 :))。按位运算符的典型(或一些更聪明的)用途是什么(特别是在js但我也想了解其他人)。如果我在任何地方错了,请纠正我。