function getRandomColor() {
const letters = '0123456789ABCDEF';
let color = '#';
for (let i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
- 定义常量letters:这个常量包含所有可能出现在十六进制颜色值中的字符。十六进制颜色值是由六个字符组成的,每个位置可以是0-9 或 A-F 中的一个。
- let color = ‘#’;,初始化颜色
- 随机选取字符:color += letters[Math.floor(Math.random() * 16)];
详解 color += letters[Math.floor(Math.random() * 16)];
- Math.random() :
它返回一个在 [0, 1) 范围内的伪随机数,即一个大于等于 0 且小于 1 的浮点数 - Math.floor():
它返回不大于给定数值的最大整数。
即[0,1]*16=[0,16]
[Math.floor(Math.random() * 16)]就会生成一个0~15中间随机一个数
letters[Math.floor(Math.random() * 16)]
上方定义常量:const letters = ‘0123456789ABCDEF’;
变量color就会在#基础上依次添加letter中的数字或字母,直到 i 加到7,不再加,最终效果即使一个六位数,即颜色。