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; 5 } 6 return "#" + randColor; 7 }
<<
是按位左移運算符,右邊的操作數是要移位的位數,移位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/