我编写的checkDriverAge函数中prompt方法无法正常工作是什么原因?
代码无法运行的原因及修复方案
- 核心问题是你仅完成了函数定义,没有主动调用
checkDriverAge()函数,代码自然不会执行触发交互逻辑 - 现有代码缺少非法输入兼容处理:如果用户在弹窗中输入非数字内容、点击取消/关闭弹窗,
Number(age)会返回NaN,现有三个条件分支都无法命中,不会弹出任何提示
修复后的完整代码如下:
function checkDriverAge() { let age = prompt("What is your age?"); // 处理用户取消输入/空输入的场景 if (age === null || age.trim() === '') { alert("请输入有效的年龄值"); return; } age = Number(age.trim()); // 处理非数字输入的场景 if (isNaN(age)) { alert("请输入合法的数字年龄"); return; } if (age < 18) { alert("Sorry, you are too young to drive this car. Powering off"); } else if (age > 18) { alert("Powering On. Enjoy the ride!"); } else if (age === 18) { alert("Congratulations on your first year of driving. Enjoy the ride!"); } } // 调用函数触发逻辑 checkDriverAge();
如果你不需要兼容异常输入场景,仅需要在原有代码的最后追加一行checkDriverAge()即可正常运行。
内容的提问来源于stack exchange,提问作者greasemach1ne
相关产品推荐
相关产品推荐

