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

JavaScript用户名存在检查函数异常:无论输入是否已注册均返回true问题求助

问题分析与解决

嘿,我看到你的问题啦!这是个新手常踩的小坑——把赋值运算符和比较运算符搞混了,导致你的函数永远返回true。

错误根源

看你代码里的这段:

if (isExisting = true) {
  return true;
} else {
  return false;
}

这里用的是单等号=,它的作用是给变量赋值,而不是比较是否相等。不管registeredUsers.includes(username)返回的是true还是false,执行isExisting = true后,isExisting都会被强制设置为true,所以这个条件永远成立,函数自然一直返回true。

修正后的代码

把赋值运算符=换成严格相等比较运算符===(推荐用严格相等,避免类型转换带来的意外问题),就能正常判断了:

let registeredUsers = ["Xian","Sam","Gel", "Ian"];
let checkName = function() {
  let username = prompt('Please enter username.');
  let isExisting = registeredUsers.includes(username, 0);
  if (isExisting === true) { // 这里改成===
    return true;
  } else {
    return false;
  }
}
checkName();

额外优化建议

其实registeredUsers.includes(username)本身就会返回布尔值(true或false),你完全可以省去多余的if-else判断,直接返回这个结果,让代码更简洁:

let registeredUsers = ["Xian","Sam","Gel", "Ian"];
let checkName = function() {
  let username = prompt('Please enter username.');
  return registeredUsers.includes(username);
}
checkName();

这样功能完全一致,代码却清爽多啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 05:23:15