Javascript templete文字不适用于随机数生成器



我正在尝试生成一个随机数,然后如果用户输入相同的数字,他可以继续前进,否则将生成另一个随机数字。但是生成随机num(a(的模板文字不起作用。

var a = Math.floor(Math.random()*10); // Random num generator
var userInput = alert('Enter the numbers: ${a}'); // User input

while ( userInput !== a){ // Loop
alert("Try Again!");
userInput = alert('Enter the numbers: ${a}');
};

代码中有一些地方可以改进。

  • 将数字变量命名为a而不是n是令人困惑的
  • 在您的情况下(并非所有情况(,Math.floor可以短接到~~
  • 用户输入来自prompt,而不是alert,后者只显示一条消息
  • 您使用严格相等的!==运算符将您的随机数与用户的输入进行比较,用户的输入将始终是String形式的数字。因此,即使他们输入了正确的数字,也会被解释为不正确,因为'3'并不严格等于3。您必须使用!=
  • 不需要userInput变量,因为您只需要使用它做一件事。只需在while循环的条件中内联prompt即可
  • 由于n永远不会更改,请用const声明它,这样,如果您以后不小心尝试更改它,就会出现一个错误,引起您的注意
  • 正如有人在评论中指出的那样,字符串文字使用`,而不是'

const n = ~~(Math.random() * 10);
while (prompt(`Enter the number: ${n}`) != n) {
alert('Try again!');
};

最新更新