生成隨機顏色


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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM