求助:如何实现含安全限制的按年龄次数循环的JavaScript脚本?
问题分析与修正代码
你的代码存在以下几个问题:
- 未实现禁止名为"Raymond"的用户运行的安全限制
- 循环逻辑错误:直接覆盖了用户输入的
age变量,且循环次数固定为20次(0到19),未与用户实际年龄匹配 - 未将用户输入的年龄转换为数字类型,可能导致循环异常
修正后的代码
// 获取用户输入 const userName = prompt("What is your name?"); let userAge = prompt("What is your age?"); // 安全限制检查 if (userName === "Raymond") { alert("You are not allowed to run this program."); } else { // 转换年龄为数字类型,避免字符串循环异常 userAge = Number(userAge); // 循环次数与用户年龄一致 for (let i = 0; i < userAge; i++) { document.write(`Your name is ${userName} and your age is ${userAge}<br>`); } }
关键修正点说明
- 安全限制:增加用户名判断,若为"Raymond"则弹窗提示并终止程序
- 循环逻辑:使用独立循环变量
i,避免覆盖用户输入的年龄;循环条件i < userAge确保循环次数等于用户年龄 - 类型处理:将输入的年龄字符串转为数字,防止字符串比较引发的逻辑错误
- 可读性优化:用模板字符串替代传统字符串拼接,代码更简洁清晰
内容的提问来源于stack exchange,提问作者Domino
相关产品推荐
相关产品推荐

