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

JavaScript标签模板如何正确传递外部变量的值

标签模板插值不显示的解决方法

标签函数的传参规则是固定的:第一个参数是模板被${}插值切分后的字符串片段数组,数组的raw属性存储未处理转义字符的原始字符串内容;从第二个参数开始,按模板里插值的顺序,依次传入每个${}表达式的计算结果。
你之前写的tag函数只接收了第一个字符串数组参数,完全没有处理后续传入的插值参数,自然拿不到外部变量key的值,输出就会缺内容。
注意:字符串片段的数量永远比插值数量多1,拼接时需要判断插值下标是否越界,避免把undefined拼入最终结果。

正确的实现需要把字符串片段和插值按顺序交错拼接,参考代码如下:

function tag(strings, ...interpolations) {
  let output = ''
  strings.raw.forEach((segment, idx) => {
    output += segment
    if (idx < interpolations.length) {
      output += interpolations[idx]
    }
  })
  console.log(output)
}

const key = "a"
tag`The value of key: ${key}` 
// 输出:The value of key: a

这个写法兼容任意数量的插值场景,多变量的情况也能正常运行:

const name = "test", count = 100
tag`Name: ${name}, Count: ${count}`
// 输出:Name: test, Count: 100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:54:25