Gor*_*son 19 javascript bitwise-operators
在C++/java/C#等语言中使用按位运算符的主要思想之一就是它们非常快.但我听说在javascript中它们非常慢(不可否认,几毫秒可能并不重要).为什么会这样?
(这个问题讨论了何时使用按位运算符,所以我将这个问题的重点改为性能.)
ken*_*bec 15
没有人再使用十六进制了吗?
function hextoRgb(c) {
c = '0x' + c.substring(1);
return [(c >> 16) & 255, (c >> 8) & 255, c & 255];
}
var c1 = hextoRgb('#191970');
alert('rgb(' + c1.join(',') + ')');
Run Code Online (Sandbox Code Playgroud)
我在JS中使用零位移零来执行快速整数截断:
var i=3.141532;
var iTrunc=i>>0; //3
Run Code Online (Sandbox Code Playgroud)
你什么时候想用它们?当您想要按位操作时,您可能希望使用它们.就像你使用布尔运算符来做布尔运算一样,使用数学运算符来进行数学运算.
如果您对按位运算符感到满意,那么将它们用于某些应用程序是很自然的.除了过度优化的布尔数组之外,它们可以用于许多目的.当然,这些情况在Javascript编程中并不经常出现,但这并不是运营商不应该可用的原因.
我发现了一些很好的信息@ http://dreaminginjavascript.wordpress.com/2009/02/09/bitwise-byte-foolish/
显然,这些天他们表现得非常好.你为什么要用它们?与其他任何地方相同的原因.