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

JavaScript中使用字符串字面量拼接遇变量未定义错误排查

问题修复方案

你的代码里有三个关键问题,逐个解决:

1. 变量作用域问题

函数内部用const声明的result是局部变量,函数外部的console.log(result)根本访问不到它。得调用createSentence函数,把它的返回值打印出来。

2. 模板字符串未从对象取值

你直接写${name},JS找不到这个变量,必须从传入的obj对象里提取属性,比如obj.name、obj.age、obj.job。

3. const变量不能重新赋值

const声明的变量是常量,一旦赋值就不能修改。你先给result赋值空字符串,又重新赋值模板字符串,这会触发报错,直接一步赋值就行。

修复后的完整代码

let obj = {
  name: 'Mitch',
  age: 29,
  job: 'tutor'
};

function createSentence(obj) {
  // 直接从obj取属性拼接字符串
  const result = `Hello my name is ${obj.name}, I am ${obj.age} years old and I am a ${obj.job}`;
  return result;
}

// 调用函数并打印返回值
console.log(createSentence(obj));

进阶写法(解构对象)

如果觉得obj.xxx麻烦,可以先解构对象,代码更简洁:

let obj = {
  name: 'Mitch',
  age: 29,
  job: 'tutor'
};

function createSentence(obj) {
  // 解构obj的属性到变量
  const { name, age, job } = obj;
  const result = `Hello my name is ${name}, I am ${age} years old and I am a ${job}`;
  return result;
}

console.log(createSentence(obj));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:55:23