最妙的一语双关:JavaScript 的标签模板
来源: shukla.io — 2026-09-26
概述
作者从莎士比亚的双关讲到编程语言:自然语言和编程语言共有的一样东西是语法,而语法正是双关的着力点。JavaScript 的标签模板让 tag 函数分别接收字面量片段与插值结果,于是他定义一个 prompt 标签函数,写出来像是 {{ url }} 模板语法——实际上那是 ${...} 先求值对象、再由对象简写构成的巧合。他点出妙处:JavaScript 看到一件事,你看到另一件事,{{ url }} 只活在读者脑子里。
核心要点
- 双关的本质是利用语法或语境,让一个表达承载两种含义。
- 标签模板让 dedent 这样的 tag 函数分别拿到文本片段与插值结果。
- Mustache、Handlebars、Jinja2、Django、Liquid、Angular、Vue 都用 {{ }} 作为模板插值语法。
- prompt`...${{ url }}...` 看起来是模板语法,实际是 ${...} 求值叠加对象简写 { name } 的自然结果。
- 生成结果是带 <prompt id="url"> 标注的字符串,供 Helicone 可观测性工具分析提示词。
- 作者承认这个双关可能用力过猛,但依然为之自豪。
金句
JavaScript 看到一件事,而你看到另一件事——{{ url }} 这种语法只活在你的脑子里。
👍 0
👎 0
← 返回 Lobsters 首页