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

时间:2012-05-27 23:47:50

标签: javascript

我是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>

5 个答案:

答案 0 :(得分:8)

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

你可以......

  • 使用number === "5"

  • 测试字符串
  • 或使用==代替===,这将为您进行转换,

  • 或将提示转换为number = parseInt(number, 10)

  • 的数字
  • 或者如果您可能正在测试花车,请使用number = parseFloat(number)

答案 1 :(得分:3)

我建议:

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

答案 2 :(得分:0)

当你进行'==='比较时,它检查类型是否完全匹配,在这种情况下你检查NUMBER 5是否等于STRING 5(或者他们输入的任何其他内容),这是假的

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

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

答案 3 :(得分:0)

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

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

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

var n = 5;

n == '5'
n == '5.0'
n == '5e0'
n == '0.5e1'

等等。

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

答案 4 :(得分:-1)

试试这个:

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