isNaN应该是依据Number来判断的。isNaN('1')应该是false. 为什么输入'1' 弹出的答案是 "输入的不是数字"
<script>window.onload=function(){varaBtn=document.getElementsByTagName('input');varst...
<script>
window.onload=function(){
var aBtn=document.getElementsByTagName('input');
var str='';
aBtn[1].onclick=function(){
str=aBtn[0].value;
if (isNaN(str)){alert('输入的不是数字')} else{alert('输入的是数字')}
};
};
</script>
</head>
<body>
<input type="text" />
<input type="button" value="判断输入的是不是数字" />
</body> 展开
window.onload=function(){
var aBtn=document.getElementsByTagName('input');
var str='';
aBtn[1].onclick=function(){
str=aBtn[0].value;
if (isNaN(str)){alert('输入的不是数字')} else{alert('输入的是数字')}
};
};
</script>
</head>
<body>
<input type="text" />
<input type="button" value="判断输入的是不是数字" />
</body> 展开
2016-10-09
展开全部
你的代码运行后,输入1,弹出的是“你输入的是数字”,但是isNaN(str)的返回值是false才对;因为:
if(true){
//执行的是返回值true的代码
}else{
//执行的是返回值false的代码
}
而你获取到的str其实是字符来的,需要用parseFloat() 和 parseInt() 来转换成数字格式才对。
PS:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。
if(true){
//执行的是返回值true的代码
}else{
//执行的是返回值false的代码
}
而你获取到的str其实是字符来的,需要用parseFloat() 和 parseInt() 来转换成数字格式才对。
PS:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。
更多追问追答
追问
没明白。。 我现在做出了的结果已经是想要的了,但是我不明白为什么我输入像‘2’这样的字符串 经过isNaN('2')之后 返回应该是false。 应该走else后的输入的是数字呀,为什么会走true里的 输入的不是数字呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询