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

JS新手求助:如何在字符串中打印变量?代码输出不符合预期

解决JavaScript字符串中打印变量的问题

嘿,我来帮你搞定这个小问题~你遇到的情况是因为两个细节没注意到,咱们一步步来修正:

问题根源

你现在用单引号(')包裹字符串,但JavaScript里要实现变量插值(把变量插到字符串里),得用模板字符串,模板字符串需要用**反引号()**来包裹——就是键盘上ESC键下方、和波浪号~`同一个键的那个符号。

另外,你用了箭头函数作为对象的sayHi方法,箭头函数的this指向和普通函数不一样:它没有自己的this,会继承外层作用域的this,所以直接写${name}或者${this.name}都找不到user对象里的name属性。

修正后的代码

方案一:用普通函数作为对象方法(推荐)

把箭头函数改成普通函数,这样this就会指向当前的user对象,再配合模板字符串就能正确输出变量了:

var user = { 
  name: "Mike", 
  sayHi: function() { 
    console.log(`Hi, I'm ${this.name}`); 
  } 
}; 
user.sayHi() // 输出:Hi, I'm Mike

方案二:如果非要用箭头函数

直接引用user.name来获取属性值,同时把字符串改成模板字符串:

var user = { 
  name: "Mike", 
  sayHi: () => { 
    console.log(`Hi, I'm ${user.name}`); 
  } 
}; 
user.sayHi() // 输出:Hi, I'm Mike

小总结

  • 模板字符串用反引号()包裹,里面可以用${变量名}`插入变量;
  • 对象的方法优先用普通函数,这样this能正确指向当前对象,方便访问对象的属性。

内容的提问来源于stack exchange,提问作者H.Epstein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:41:25