这个问题已经在这里有了答案:
已关闭8年。
在c/c++
中,按位运算比常规(算术)运算要快(在低性能处理器中,至少要好得多)。 js
是否也适用?我不认为它在c语言中更快的原因是按位操作是硬连线的,通常在1个处理器周期内完成。但是js
在没有任何此类硬件(我指的是寄存器)访问的浏览器中运行。我不确定(大约70%的确定:))。按位运算符的典型(或更聪明的)用法是什么(尤其是在js
中,但我也想知道其他人)。如果我在任何地方都不对,请纠正我。
最佳答案
JS中的按位运算符很慢。与C相比,它真的很慢。原因是在JS中,所有数字都表示为 double 浮点数,因此,要执行按位运算,运行时必须将它们转换为32位整数然后返回。
这并不是说它们没有用。例如,Node#compareDocumentPosition返回一个位掩码,而something.length >>> 0
是获取something
的length属性的常用方法,如果length
不是数字或NaN
,则它为零。另外,假定a / b | 0
和Math.floor(a / b)
> = 0,则a
是执行b
的快速方法。
关于javascript - javascript中按位运算的意义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9075351/