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
相关产品推荐
相关产品推荐

