JavaScript:警报在脚本中不起作用

JavaScript:警报在脚本中不起作用,javascript,Javascript,我是JavaScript新手。这是我开始实际学习JavaScript的第二天。我不知道问这个问题是否合适,因为有太多的指导方针和标准要遵循 好吧,这里是我写的一个小脚本,它不起作用。当value5显示警报时。但是当有人给出答案5时(这是正确的答案)。它没有显示任何警报?我试图自己解决这个问题,但我无法解决这个问题。这是我的密码: <script type="text/javascript"> var number = prompt("count these numbers:

我是JavaScript新手。这是我开始实际学习JavaScript的第二天。我不知道问这个问题是否合适,因为有太多的指导方针和标准要遵循

好吧,这里是我写的一个小脚本,它不起作用。当
value<5&&value>5
显示警报时。但是当有人给出答案5时(这是正确的答案)。它没有显示任何警报?我试图自己解决这个问题,但我无法解决这个问题。这是我的密码:

<script type="text/javascript"> 
    var number = prompt("count these numbers: 2+5-10+8=?");
    if( number === 5 ) {
     alert( "Congratulations Your Answer is Correct" );
    }
    else if ( number > 5  ) {
      alert( "Your answer is a little higher." );
    }
    else if ( number < 5 ) {
      alert( "Your answer is little lower than actual answer." );
    }
</script>

变量编号=提示(“计算这些编号:2+5-10+8=?”;
如果(数字==5){
警惕(“祝贺你,你的答案是正确的”);
}
否则,如果(数量>5){
警惕(“你的答案高了一点。”);
}
否则如果(数字<5){
警惕(“你的答案比实际答案低一点。”);
}

提示返回一个字符串,但您正在对一个数字进行严格的相等测试

你可以

  • 数字==“5”
    测试字符串

  • 或者使用
    =
    而不是
    =
    ,这将为您进行转换

  • 或者使用
    number=parseInt(number,10)

  • 或者,如果您可能要测试浮动,请使用
    number=parseFloat(number)

    • 我建议:

      var number = parseInt(prompt("count these numbers: 2+5-10+8=?"),10);
      

      当您进行“==”比较时,它会检查类型是否完全匹配,在本例中,您会检查数字5是否等于字符串5(或它们输入的任何内容),这是false

      您需要将答案解析为整数,正如David Thomas所建议的:

      var number = parseInt(prompt("count these numbers: 2+5-10+8=?"));
      

      简单的答案是使用
      =
      而不是严格的相等
      ==


      不要使用
      parseInt
      ,因为它会将say
      5iasd
      转换为
      5
      ,因此您可能会接受错误的答案或需要额外的测试

      不要使用
      parseFloat
      ,因为它不是必需的。使用
      ==
      表示以下所有内容都返回true:

      var n = 5;
      
      n == '5'
      n == '5.0'
      n == '5e0'
      n == '0.5e1'
      
      等等

      哦,作为参考,您应该了解ECMAScript的工作原理。

      试试这个:

      ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "alert('your message');", true);
      

      您在
      parseInt
      +1问题上领先于我,这不是一个好答案,使用
      parseInt
      意味着像
      5asda
      这样的答案将被视为正确答案。使用相等运算符要简单得多。
      ==
      @AzibYaqoob:小心这个。如果您测试的数字是
      0
      ,并且用户传递了一个空字符串,它将显示为正匹配。因此,我需要对此发出另一个警报。如果用户将表单留空,则会显示新的警报消息警报,而不是警报,对吗?@AzibYaqoob:这一切取决于您实际需要验证的内容。是的,您可以单独测试空字符串。如果要确保它是有效的数字字符串,可以执行
      number=parseInt(number,10)
      ,然后执行测试以查看它是否正确解析为数字
      if(isNaN(number)){alert(“不是一个有效的数字!”);}
      @amnotiam-或者对像我这样懒惰的人使用
      +“5”
      。不要使用
      parseInt
      ,除非你很高兴
      5asd
      被认为是正确的。@Azib-既然你是JavaScript新手,我想指出德里克是在开玩笑;)