You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中使用isNaN实现循环提示输入数字的代码失效问题

错误原因

  • 循环内未更新userSalary变量:你在循环内调用prompt获取的新输入值仅做了parseFloat处理,没有重新赋值给userSalary,while的判断条件始终基于第一次输入的结果,逻辑不生效。
  • 调用了不存在的reset()方法:userSalary是prompt返回的字符串类型值,字符串没有内置reset方法,执行这行代码会直接抛出JS运行时错误,终止代码执行,这就是你输入两次就自动跳出循环的原因。

可正常运行的修正代码

var userSalary = prompt("Hi, type a number!");

// 循环判断输入是否为非数字,直到用户输入合法数字为止
while(isNaN(parseFloat(userSalary))){
    userSalary = prompt(userSalary + " is not number...");
}

alert("Thank you!");

如果需要严格校验用户输入必须是纯数字(排除123abc这类可以提取出数字的混合字符串),可以调整循环判断条件为:

while(!/^\d+(\.\d+)?$/.test(userSalary))

内容的提问来源于stack exchange,提问作者user11838329

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:36:03