Javascript 开关赢得';不要在单击时更改变量
我正在尝试制作一个颜色生成器,但遇到了一些问题。我这样做是通过生成6个介于1和15之间的随机数。如果数字小于或等于9,则保持其值,但如果大于9,则变为“a”、“b”、“c”等 你可以在这里看到我的代码笔: 下面是我的JavaScript:Javascript 开关赢得';不要在单击时更改变量,javascript,Javascript,我正在尝试制作一个颜色生成器,但遇到了一些问题。我这样做是通过生成6个介于1和15之间的随机数。如果数字小于或等于9,则保持其值,但如果大于9,则变为“a”、“b”、“c”等 你可以在这里看到我的代码笔: 下面是我的JavaScript: document.querySelector("button").addEventListener("click", function() { let num1 = Math.floor((Math.random() * 15) + 1); let n
document.querySelector("button").addEventListener("click", function() {
let num1 = Math.floor((Math.random() * 15) + 1);
let num2 = Math.floor((Math.random() * 15) + 1);
let num3 = Math.floor((Math.random() * 15) + 1);
let num4 = Math.floor((Math.random() * 15) + 1);
let num5 = Math.floor((Math.random() * 15) + 1);
let num6 = Math.floor((Math.random() * 15) + 1);
console.log(num1, num2, num3, num4, num5, num6)
let hex = function(num) {
if (num <= 9) {
num = num;
} else if (num === 10) {
num = 'a'
} else {
switch (num) {
case 10:
num = "a";
break;
case 11:
num = "b";
break;
case 12:
num = "c";
break;
case 13:
num = "d";
break;
case 14:
num = "e";
break;
case 15:
num = "f";
};
};
};
hex(num1);
hex(num2);
hex(num3);
hex(num4);
hex(num5);
hex(num6);
console.log(num1, num2, num3, num4, num5, num6)
})
document.querySelector(“按钮”).addEventListener(“单击”,函数)(){
设num1=Math.floor((Math.random()*15)+1);
设num2=Math.floor((Math.random()*15)+1);
设num3=Math.floor((Math.random()*15)+1);
设num4=Math.floor((Math.random()*15)+1);
设num5=Math.floor((Math.random()*15)+1);
设num6=Math.floor((Math.random()*15)+1);
日志(num1、num2、num3、num4、num5、num6)
设十六进制=函数(num){
如果(num因为您不使用num
试试这个:
document.querySelector(“按钮”).addEventListener(“单击”,函数)(){
设num1=Math.floor((Math.random()*15)+1);
设num2=Math.floor((Math.random()*15)+1);
设num3=Math.floor((Math.random()*15)+1);
设num4=Math.floor((Math.random()*15)+1);
设num5=Math.floor((Math.random()*15)+1);
设num6=Math.floor((Math.random()*15)+1);
日志(num1、num2、num3、num4、num5、num6)
设十六进制=函数(num){
如果(num在编程中,对值的引用和值本身是有区别的。因为您正在将原始值传递给hex
,所以它做的是正确的,但值会发生更改,但相关的内存值不会发生更改,因为在函数内部,引用不再存储在num1
中,只是这样正在传入的是数字,而不是变量。您需要返回值并再次将其分配给变量
document.querySelector(“按钮”).addEventListener(“单击”,函数)(){
设num1=Math.floor((Math.random()*15)+1);
设num2=Math.floor((Math.random()*15)+1);
设num3=Math.floor((Math.random()*15)+1);
设num4=Math.floor((Math.random()*15)+1);
设num5=Math.floor((Math.random()*15)+1);
设num6=Math.floor((Math.random()*15)+1);
控制台日志(111、num1、num2、num3、num4、num5、num6)
设十六进制=函数(num){
开关(num){
案例10:
返回“a”;
案例11:
返回“b”;
案例12:
返回“c”;
案例13:
返回“d”;
案例14:
返回“e”;
案例15:
返回“f”;
违约:
返回num;
};
};
num1=十六进制(num1);
num2=十六进制(num2);
num3=十六进制(num3);
num4=十六进制(num4);
num5=十六进制(num5);
num6=六角(num6);
日志(num1、num2、num3、num4、num5、num6)
})
单击
您的函数需要返回num。您正在将值赋给变量num
,但您正在记录num1
,num2
等等。另外:number.toString(16);
非常感谢,代码的效率是如此之高。