JS认识到var是String

时间:2019-04-27 20:21:41

标签: javascript

我认为JS认为 var num 是一个字符串,但我想将 var num 用作数字!问题显示'num'未定义

var num = document.getElementById('number').value;
var i = Math.floor(Math.random(0,num));
var c = document.getElementById('chance').value;
    function clicked(){
         var j = document.getElementById('game').value;
         if (i > j){
             document.getElementById('demo').innerHTML = "Bigger!";
             c -= 1;
             document.getElementById('re').innerHTML = "You have " + c + " more chances!";
         } else if(num < j){
             document.getElementById('demo').innerHTML = "The value is bigger than " + num + "!";
             document.getElementById('re').innerHTML = " "
         } else if (i < j){
             document.getElementById('demo').innerHTML = "Smaller!";
             c -= 1;
             document.getElementById('re').innerHTML = "You have " + c + " more chances";
         } else if (i == j){
             document.getElementById('demo').innerHTML = "Correct!";
             c = 14;
             document.getElementById('re').innerHTML = " ";
             i = Math.floor(Math.random()*num);
         }
         if (c == 0){
             document.getElementById('demo').innerHTML = "Try again! The secret number was " + num;
             c = 14;
             document.getElementById('re').innerHTML = " ";
             i = Math.floor(Math.random()*101);
             }
     }
<p>
   You should guess a number between 0 ~ <input type="number" id="number"> under this text. You have total <input type="number" id="chance"> chances. Good luck!<br><br>
   <input type="number" id="game">   <input type="submit" onclick="clicked()" value="GUESSED">
   <p id="demo"></p>
   <p id="re"></p>
</p>

我希望ID“数字”为var num,即介于0和num之间的随机数: 这将是var I,而ID“机会”将是var c,机会数将是c。希望您知道我的意思,因为我已尽力描述。顺便说一下,我正在编码一个猜数字的游戏HTML,而我正在编码一个nooooob。如果你很好,请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:2)

参阅文档:https://gomakethings.com/converting-strings-to-numbers-with-vanilla-javascript/

    var num1 = parseInt(num, 10);

parseInt()方法将字符串转换为整数(整数)。

它接受两个参数。第一个参数是要转换的字符串。第二个参数称为基数。这是数学系统中使用的基数。供我们使用,应该始终为10。

Number()方法将字符串转换为数字。

有时是整数。其他时候是点数。而且,如果您输入的字符串中包含随机文本,则会得到NaN,即“不是数字”的缩写。

由于这种不一致的结果,与parseInt()和parseFloat()相比,这是一个不太安全的选择。如果您知道所需电话号码的格式,请改用这些格式。如果您想让字符串以NaN失败(如果其中包含其他字符),那么Number()实际上可能是一个更好的选择。

答案 1 :(得分:1)

var num = document.getElementById('number').value始终返回字符串值。您可以使用https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number

强制转换值
num = Number(num);