这是生成随机十六进制颜色的javascript:
'#'+(Math.random()*0xFFFFFF<<0).toString(16);
有人能跟我说话吗?
我理解Math.random的工作原理(以及最后的String),但之后我不理解语法。我有问题:
非常感谢任何帮助。
谢谢,
拉夫
答案 0 :(得分:1)
Math.random()如何乘以F输出一个数字?
它不会乘以F. 0xFFFFFF
会转换为16777215
,因为0xFFFFFF
只是十六进制的16777215
方式。
&lt;&lt;&lt; 0是什么意思?
<<
是一个bithift运算符。 <<0
将所有位向左移动0位(填充符:0)。但这并没有任何意义。在这种情况下,它只删除任何小数位。
toString上16的参数是什么意思? (这意味着不超过16个字母?)
16是数字系统的参数。 (2是二进制,8是八进制,10是十进制/正常,16是十六进制等)。
答案 1 :(得分:0)
它包含两个功能:
,第二个创建一个十六进制值的数组。
//返回十六进制数的一个可能值
function randomHex() {
var hexNumbers = [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
'A',
'B',
'C',
'D',
'E',
'F'
]
// picking a random item of the array
return hexNumbers[Math.floor(Math.random() * hexNumbers.length)];
}
// Genarates a Random Hex color
function hexGenerator() {
hexValue = ['#'];
for (var i = 0; i < 6; i += 1) {
hexValue.push(randomHex());
}
return hexValue.join('');
}
// print out the random HEX color
document.write(hexGenerator());