我是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>
答案 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);