“<<”的含义是什么?在JavaScript中?

时间:2016-05-11 13:22:16

标签: javascript operators

名为ZPiDER的用户回答了有关在JS中生成随机颜色字符串的问题。

Random color generator in JavaScript

这是代码:

"#"+((1<<24)*Math.random()|0).toString(16)

我正在尝试解析它以了解它是如何工作的但我真的不明白它。有人可以解释什么&lt;&lt;装置

我试过google,但我怀疑搜索引擎会以某种方式将字符解释为特殊字符。

3 个答案:

答案 0 :(得分:1)

这有点转变:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

数字1(2 ^ 0)向左移位24位变为16777216(2 ^ 24)。来自文档:

  

&LT;&LT; (左移)

     

该运算符将第一个操作数向左移动指定的位数。向左移位的多余位被丢弃。零位从右侧移入。

     

例如,9&lt;&lt; 2收益36:

答案 1 :(得分:1)

左移位运算符就像许多其他语言一样,如C或Java。

1<<24表示1左移24位,因此得到0x1000000。乘以随机值(从0到0除外),您可以获得0x0000000xFFFFFF之间的内容。这正是您想要为随机颜色做的事情。

但请记住,此代码的作者不尊重此随机函数不会生成均匀分布的随机值。所以很可能你没有获得“真正的”随机颜色,而是非常接近它的颜色。

答案 2 :(得分:0)

&LT;&LT;或&gt;&gt;是位操作,位移。例如,这需要两个参数 x&lt;&lt;年。这是x:1 1 0 0 0 1 1 1。让它向右移3个字节:1 1 1 1 1 0 0 0