名为ZPiDER的用户回答了有关在JS中生成随机颜色字符串的问题。
Random color generator in JavaScript
这是代码:
"#"+((1<<24)*Math.random()|0).toString(16)
我正在尝试解析它以了解它是如何工作的但我真的不明白它。有人可以解释什么&lt;&lt;装置
我试过google,但我怀疑搜索引擎会以某种方式将字符解释为特殊字符。
答案 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除外),您可以获得0x000000
和0xFFFFFF
之间的内容。这正是您想要为随机颜色做的事情。
但请记住,此代码的作者不尊重此随机函数不会生成均匀分布的随机值。所以很可能你没有获得“真正的”随机颜色,而是非常接近它的颜色。
答案 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