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

JavaScript课程练习:如何正确返回字符串类型的姓名?

问题:实现返回姓名字符串的getUserName函数

测试要求

课程提供的测试代码如下,要求调用getUserName()时,返回值必须是字符串类型:

describe("Solution", () => {
  it("should return a string as a name", () => {
    const name = getUserName();
    if (typeof name === "string") {
      console.log(`Hello, ${name}!`);
    }
    expect(name).to.be.a("string");
  });
});

你的现有代码问题

function getUserName("Jawwad") {
  let name = getUserName()
  if (typeof name === String) {
    console.log("Hello " + name);
  }
  return name;
}

这段代码存在几个关键错误:

  • 函数参数定义错误:不能直接将字符串字面量"Jawwad"作为参数名,且测试要求函数无参数调用
  • 无限递归:函数内部调用getUserName()会导致死循环,最终栈溢出
  • typeof判断错误:typeof返回的是字符串类型的结果,应该和"string"比较,而非构造函数String
  • 冗余逻辑:测试代码中的判断和打印逻辑不需要写在你的函数里,函数只需要返回名字字符串即可

分步修正方案

  1. 修正函数定义:定义无参数的getUserName函数
  2. 移除递归调用:直接指定要返回的名字,不需要调用自身
  3. 删除冗余代码:去掉不必要的if判断和console.log,这些是测试逻辑
  4. 返回名字字符串:直接返回你的名字"Jawwad"

正确代码

function getUserName() {
  return "Jawwad";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:50:28