Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 开关赢得';不要在单击时更改变量_Javascript - Fatal编程技术网

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

我正在尝试制作一个颜色生成器,但遇到了一些问题。我这样做是通过生成6个介于1和15之间的随机数。如果数字小于或等于9,则保持其值,但如果大于9,则变为“a”、“b”、“c”等

你可以在这里看到我的代码笔:

下面是我的JavaScript:

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);
非常感谢,代码的效率是如此之高。