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

JavaScript如何实现同一个函数传入不同参数调用?

问题根因

你代码首次输入就触发告警的核心原因是:userName2和userName3初始值都是undefined,第二个判断分支里的userName2 === userName3条件永久成立,只要第一个判断不触发就会弹出告警。
除此之外你的代码还存在两处逻辑缺陷:

  • 函数未定义参数接收规则,调用时传入的userName2、userName3完全没有被用到
  • 每次调用函数都会把新输入的用户名覆盖赋值给userName1,第二次、第三次输入的内容根本没有存储到对应变量,无法完成后续的重复校验

修复方案

推荐使用数组存储已录入的用户名,逻辑更简洁易维护,修改后的代码如下:

// 存储已录入的用户名
const usedNames = [];

// 执行3次录入校验
alcoholAgeCheck();
alcoholAgeCheck();
alcoholAgeCheck();

function alcoholAgeCheck() {
  const inputName = prompt('请输入姓名');
  // 校验是否重复
  if (usedNames.includes(inputName)) {
    alert('抱歉,同一个名字仅可使用一次');
    // 重复时可重新触发录入,不需要可删除该行
    return alcoholAgeCheck();
  }
  // 不重复则存入数组
  usedNames.push(inputName);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:06:05