<script>
var p=prompt("how old are you","");
if(p)
alert(p+" is your age");
else
alert("You dint entered any input or you have entered a non-integervalue");
</script>
这是我的javascript代码。假设我输入我的0岁。
然后p = 0这意味着代码的else部分将执行。但代码正在执行if部分!
为什么会这样?
我是网络开发的新手,请帮助。
谢谢!
答案 0 :(得分:0)
只需编写此代码:
var p=prompt("how old are you","");
alert(typeof(p));
&#13;
你会看到它是一个字符串。 "0"
是一个字符串,因此它将被评估为true
,因为它是非空或 null 。
因此,在做任何事情之前将其解析为数字。
答案 1 :(得分:0)
parseInt()
提示的结果,即将字符串结果解析为整数
现在,如果输入为"0"
,则会将其解析为0
和0 == false
。
因此&#34;否则&#34;条件将根据需要发生。
此外,如果输入非整数字符串(例如字母),则结果为NaN
,else
部分将出现
var p=parseInt(prompt("how old are you",""));
if(p) {
alert(p+" is your age");
}
else {
alert("You dint entered any input or you have entered a non-integervalue");
}
答案 2 :(得分:0)
如果要确保提示输入为数字,则应使用isNaN函数检查输入。
var p=prompt("how old are you","");
if(!isNaN(p)) alert(p+" is your age");
else alert("You dint entered any input or you have entered a non-integervalue");