JavaScript:警报在脚本中不起作用
我是JavaScript新手。这是我开始实际学习JavaScript的第二天。我不知道问这个问题是否合适,因为有太多的指导方针和标准要遵循 好吧,这里是我写的一个小脚本,它不起作用。当JavaScript:警报在脚本中不起作用,javascript,Javascript,我是JavaScript新手。这是我开始实际学习JavaScript的第二天。我不知道问这个问题是否合适,因为有太多的指导方针和标准要遵循 好吧,这里是我写的一个小脚本,它不起作用。当value5显示警报时。但是当有人给出答案5时(这是正确的答案)。它没有显示任何警报?我试图自己解决这个问题,但我无法解决这个问题。这是我的密码: <script type="text/javascript"> var number = prompt("count these numbers:
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
,因为它会将say5iasd
转换为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
,并且用户传递了一个空字符串,它将显示为正匹配。因此,我需要对此发出另一个警报。如果用户将表单留空,则会显示新的警报消息警报,而不是number=parseInt(number,10)
,然后执行测试以查看它是否正确解析为数字if(isNaN(number)){alert(“不是一个有效的数字!”);}
@amnotiam-或者对像我这样懒惰的人使用+“5”
。不要使用parseInt
,除非你很高兴5asd
被认为是正确的。@Azib-既然你是JavaScript新手,我想指出德里克是在开玩笑;)