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

Javascript模板文字不适用于随机数生成器,javascript,Javascript,我试图生成一个随机数,如果用户输入相同的数值,他可以继续前进,否则它将生成另一个随机数。但是用于生成随机数(a)的模板文本不起作用 var a = Math.floor(Math.random()*10); // Random num generator var userInput = alert('Enter the numbers: ${a}'); // User input while ( userInput !== a){ // Loop ale

我试图生成一个随机数,如果用户输入相同的数值,他可以继续前进,否则它将生成另一个随机数。但是用于生成随机数(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
    在您的情况下(并非每种情况下)可以短接到
    ~
  • 您从
    提示符
    获取用户输入,而不是仅显示消息的
    警报
  • 您正在使用严格的等式
    ==
    运算符将您的随机数与用户的输入进行比较,用户的输入将始终是
    字符串
    形式的数字。因此,即使他们输入了正确的数字,也会被解释为不正确,因为
    '3'
    严格来说并不等于
    3
    。你必须使用
    =取而代之
  • 不需要
    userInput
    变量,因为您只需要用它做一件事。只需在
    while
    循环的条件内内联
    提示符
  • 由于
    n
    从不更改,请使用
    const
    声明它,这样,如果您以后不小心尝试更改它,您将收到一个错误,从而引起您的注意
  • 正如有人在评论中指出的,字符串文字使用的是
    `
    ,而不是
    '
const n=~~(Math.random()*10);
while(提示(`Enter the number:${n}`)!=n){
警报('重试!');

};您的代码中有一些地方可以改进

  • 将数字变量命名为
    a
    而不是
    n
    容易混淆
  • Math.floor
    在您的情况下(并非每种情况下)可以短接到
    ~
  • 您从
    提示符
    获取用户输入,而不是仅显示消息的
    警报
  • 您正在使用严格的等式
    ==
    运算符将您的随机数与用户的输入进行比较,用户的输入将始终是
    字符串
    形式的数字。因此,即使他们输入了正确的数字,也会被解释为不正确,因为
    '3'
    严格来说并不等于
    3
    。你必须使用
    =取而代之
  • 不需要
    userInput
    变量,因为您只需要用它做一件事。只需在
    while
    循环的条件内内联
    提示符
  • 由于
    n
    从不更改,请使用
    const
    声明它,这样,如果您以后不小心尝试更改它,您将收到一个错误,从而引起您的注意
  • 正如有人在评论中指出的,字符串文字使用的是
    `
    ,而不是
    '
const n=~~(Math.random()*10);
while(提示(`Enter the number:${n}`)!=n){
警报('重试!');
};
Literals使用勾号“`”字符
alert()
函数始终返回
undefined
。因此,无论该数字是什么,它都不会等于一个数字。文字与勾号“`”字符一起工作
alert()
函数始终返回
undefined
。所以它永远不会等于一个数字,不管这个数字是什么。