为了账号安全,请及时绑定邮箱和手机立即绑定

js用isNAN判断数字为什么输入“数字+英文点号”也通过?

js用isNAN判断数字为什么输入“数字+英文点号”也通过?

皈依舞 2019-04-08 11:19:23
在w3c上做一个例子的时发现的【w3c直通车】发现如果输入数字加一个英文点号居然也是可以通过的例如“10.”,不解,求大神介绍。。附上代码:Pleaseinputanumber:ClickMe!functionmyFunction(){//Getthevalueofinputfieldwithid="numb"varval=document.getElementById("numb").value;//Gettheelementwithid="demo"varelem=document.getElementById("demo");//Ifvalueisspaceornotanumberif(val==""||isNaN(val)){elem.innerHTML="NotaNumber";}else{elem.innerHTML="InputOK";}}
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

Javascript会把这个情况当做浮点数处理。
记住这个例子,以后就明白了。这也是Javascript解析器解析点操作符的一个“癖好”:
vara=[1].toString();//String
varb=1.toString();//SyntaxError
当点操作符前为数字常量时会被解析为浮点数特征。
如果希望解析器不将其读作浮点数特征,题主这样写:
1..toString();
1.toString();
(1).toString();
上面三个例子全部返回字符串变量,也就是说点操作符恢复正常。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 384 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号