iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 26
0
自我挑戰組

利用30分鐘~想一個前端問題系列 第 26

利用30分鐘~想一個前端問題 Day26-randomHexColorCode

randomHexColorCode

Generates a random hexadecimal color code.

Use Math.random to generate a random 24-bit(6x4bits) hexadecimal number.
Use bit shifting and then convert it to an hexadecimal String using toString(16).

產生隨機的 16進位 顏色色碼

使用 Math.random 產生 隨機的 24-bit(6x4bits)
藉由位移操作使用 toString(16) 變成字串來改變成 隨機的16進制數字字符串

const randomHexColorCode = () => {
  let n = (Math.random() * 0xfffff * 1000000).toString(16);
  return '#' + n.slice(0, 6);
};
EXAMPLES
randomHexColorCode(); // "#e34155"

分析點

  1. 十六進位

十六進位(簡寫為hex或下標16)在數學中是一種逢16進1的進位制。一般用數字0到9和字母A到F表示,其中:A~F相當於十進位的10~15,這些稱作十六進位數字。
0X就是16進位開頭的
例如十進位數57,在二進位寫作111001,在16進位寫作39。

2.toString

toString()可以將所有的的資料都轉換為字串,但是要排除null 和 undefined,toString() 括號中的可以寫一個數字,代表進位制,對應進位制字串 ,例如:十六進位制:toString(16)

參考文章

淺談JS中String()與 .toString()的區別


上一篇
利用30分鐘~想一個前端問題 Day25-capitalize
下一篇
利用30分鐘~想一個前端問題 Day27-httpGet
系列文
利用30分鐘~想一個前端問題30

尚未有邦友留言

立即登入留言