JavaScript实现prompt触发alert功能遇语法错误求排查
原代码存在的问题
- 没有存储
prompt()返回的用户输入内容,所有判断逻辑都是针对预先写死的固定字符串,完全没有用到用户的实际回答 - 回调函数
callback仅在if分支内定义,else分支调用setTimeout时会因为找不到callback变量抛出引用错误 callback函数的结束大括号漏写,存在语法错误- 逻辑分支完全错位,判断用户输入是否匹配的逻辑写反了位置
- 大小写判断重复冗余,不需要单独定义两个变量处理大小写
修改后可直接运行的代码
// 获取用户输入的内容并去除首尾空格 const userInput = prompt("What's your name?")?.trim() if (userInput) { // 不区分大小写匹配用户输入 if (userInput.toLowerCase() === "griffin") { const callback = function() { alert("Oh hi! " + userInput) } // 匹配成功延迟1秒弹出提示 setTimeout(callback, 1000) } else { // 输入内容不匹配时弹出提示 alert("Then whats your name if it's not Griffin?") } } else { // 用户点取消或者输入为空时的处理,可按需调整 alert("请输入你的名字") }
功能说明
- 首先获取用户在prompt弹窗输入的内容,做去空处理
- 不区分大小写判断用户输入是否为Griffin,匹配成功的话延迟1秒弹出打招呼的提示
- 输入其他内容的话直接弹出对应提示
- 处理了用户点击取消或者输入为空的边界情况
内容的提问来源于stack exchange,提问作者Zachimations
相关产品推荐
相关产品推荐

