0xFFFFFF或者#FFFFFF 表示白色,和RGB(255, 255, 255)一样。 0x表示16进制.
颜色有3个部分,红绿蓝。通常每个存储一个单字节。因此可以位于0,255。或者位于0,FF之间。颜色是#RGB, 因此可以为0x0 到0xFFFFFF. 随机数乘以
0xFFFFF
意味着可以生成任何任何颜色
"0x" is a prefix meaning "just to be sure, the rest of this is a hex value, okay? Even if it doesn't happen to have any A-F symbols in it, don't go interpreting it as decimal; and especially make sure you don't interpret it as an identifier name."
0x 可能是最常见的前缀--对于16进制数来说,出现在许多语言和环境里。在汇编语言里,你可能会见到
$
前缀,
h
后缀。
16进制三联体, FF, FF, FF。
F在16进制中表示十进制的15,FF在十进制就是15*16+15=255。
0xFFFFFF 等于十进制的16777215
255 255 255 就是白色
1 public getRandomColor() {
2 var randColor = (Math.random() * 0xFFFFFF << 0).toString(16);
3 while (randColor.length < 6) {
4 randColor = "0" + randColor;
6 return "#" + randColor;
<<
是按位左移运算符,右边的操作数是要移位的位数,移位0位没有效果,按位移位仅为整数定义,严格来说JavaScript没有整数 - 它只有一个由IEEE双精度实现的数字类型。
为了让 <<
有意义,左手操作数必须首先舍入为整数。此操作中使用的舍入类型是截断/截尾,举个例子,小数点右侧的部分都丢掉。这也叫做向零舍入。round-towards-zero
(我们通常见到的舍入方法是像最近的整数舍入。 round-towards-nearest
,)
还有以下的舍入类型
round-towards-positive-infinity
round-towards-negative-infinity
round-away-from-zero
对于正数,round-toward-zero
和Math.floor() 效果一样, 但是写<<0
更快. 实际上,写 |0
更快,它对值0调用按位OR运算符,它也是一个操作-除了将左侧的操作数截尾为整数之外,没有其他效果。
https://www.sitepoint.com/javascript-generate-lighter-darker-color/