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

Node.js中模板字符串未替换变量,输出${name}而非传入值问题排查

问题描述

我是Node.js新手,具备多语言学术编程经验,但无生产环境实践。当前在VS Code中测试Node.js代码片段,调用greet('mario')、greet('yoshi')时,终端输出hello, ${name}而非预期的具体名称,此前测试中${}语法也未生效,疑惑是代码、设置还是VS Code的问题。

代码片段

const greet = (name) =>{
  console.log('hello, ${name}');
};

greet('mario');
greet('yoshi');

环境版本

  • VS Code: 1.87.0
  • Electron: 27.3.2
  • ElectronBuildID: 26836302
  • Chromium: 118.0.5993.159
  • Node.js: 18.17.1
  • V8: 11.8.172.18-electron.0
  • OS: Windows_NT x64 10.0.19045

问题原因及解决方法

问题出在字符串的定义方式上:JavaScript中支持${}变量插值的模板字符串必须用**反引号()**包裹,你用了单引号('),导致${name}`被当作普通文本输出,和VS Code设置无关。

修改后的代码如下:

const greet = (name) =>{
  console.log(`hello, ${name}`);
};

greet('mario');
greet('yoshi');

补充说明:

  • 单引号(' ')和双引号(" ")仅用于定义普通字符串,无法解析其中的变量占位符。
  • 反引号( )是ES6新增的模板字符串语法,Node.js 18.17.1完全支持该特性,修改后运行代码就能得到预期的hello, mario和hello, yoshi输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:39:55