使用Javascript,如何定位3个变量并将Math.random()应用于它?

时间:2019-01-23 22:28:36

标签: javascript jquery

我试图在此处仅使用Javascript创建代码(HTML主体中没有任何内容),以便每次刷新时都会生成加起来的随机数。

我已经尝试过使用Math.random()和innerHTML,但是我认为我在错误的地方使用了它。

<body>
    <div id="mathProblem">
        <!-- leave this div empty!-->
    </div>
<script>
    let myDiv = document.getElementById("mathProblem");
    var x;
    var y;
    var z;
    x = Math.random();
    y = Math.random();
    z = x + y
    myDiv.innerHTML = "she made"+ x "cookies but ate " + y, "she has" + z "cookies left";
    document.getElementById("mathProblem").innerHTML = z;
</script>

最后,我基本上要实现的目标是,每次刷新时,X和Y变量都不相同,它们加起来等于Z,因此会产生单词问题。

3 个答案:

答案 0 :(得分:0)

innerHTML声明中只有一些错字。

    myDiv.innerHTML = "she made"+ x + "cookies but ate " + y +  "she has" + z +"cookies left";

确保正确连接字符串。

您还可以使用如下所示的字符串插值:

myDiv.innerHTML = `she made ${x} cookies but ate ${y} she has ${z} cookies left`;

注意反引号``而不是双引号""

所以:

<body>
  <div id="mathProblem"><!-- leave this div empty!--></div>
  <script>
    const myDiv = document.getElementById("mathProblem");
    const x = Math.random();
    const y = Math.random();
    const z = x + y;
    myDiv.innerHTML = `she made ${x} cookies but ate ${y} she has ${z} cookies left`;
  </script>
</body>

答案 1 :(得分:0)

您遇到几个问题。首先是由于缺少一些加号,您的JavaScript未能按预期完成。接下来是您要两次分配给innerHTML。最后,我想您正在尝试进行整数数学运算并表达逻辑上正确的句子。

this explanation of Random阅读并检查您的代码(经过语法更正)与我的代码在this JS Fiddle之间的区别。如果您想尝试新事物,可以在那里使用JS。归结为这一变化:

let x = Math.floor(Math.random() * 10) + 1;
let y = Math.floor(Math.random() * 10) + 1;
let z = x + y;
document.getElementById("mathProblem").innerHTML = `she made ${z} cookies but ate ${y} she has ${x} cookies left`;

答案 2 :(得分:-1)

  

Math.random()不提供加密安全的随机   数字。不要将它们用于与安全相关的任何事情。使用网路   而是使用Crypto API,更确切地说是   window.crypto.getRandomValues()方法。   https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random

genRandomNumbers = function getRandomNumbers() {
  var array = new Uint32Array(2);
  window.crypto.getRandomValues(array);
 
  var randText = document.getElementById("myRandText");
  var resultText = document.getElementById("result");
  
  randText.innerHTML = "The random numbers are: "
  for (var i = 0; i < array.length; i++) {
    randText.innerHTML += array[i] + " ";
  }
  resultText.innerHTML = array[0] + array[1];
}
<!-- Learn about this code on MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto -->

<p id="myRandText">The random numbers are: </p>
<p id="result">
Result:
</p>
<button type="button" onClick='genRandomNumbers()'>Generate 2 random numbers and add</button>