如何在 JavaScript 中进行字符串插值?

新手上路,请多包涵

考虑这段代码:

var age = 3;

console.log("I'm " + age + " years old!");

除了字符串连接之外,还有其他方法可以将变量的值插入到字符串中吗?

原文由 Tom Lehman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

从 ES6 开始,您可以使用 模板文字

 const age = 3
 console.log(`I'm ${age} years old!`)

PS 注意反引号的使用: ``

原文由 Damjan Pavlica 发布,翻译遵循 CC BY-SA 4.0 许可协议

tl;博士

如果适用,请使用 ECMAScript 2015 的模板字符串文字。

解释

根据 ECMAScript 5 规范,没有直接的方法来做到这一点,但 ECMAScript 6 有 模板字符串,在规范起草期间也被称 为准文字。像这样使用它们:

 > var n = 42;
undefined
> `foo${n}bar`
'foo42bar'

您可以在 {} 中使用任何有效的 JavaScript 表达式。例如:

 > `foo${{name: 'Google'}.name}bar`
'fooGooglebar'
> `foo${1 + 3}bar`
'foo4bar'

另一件重要的事情是,您不必再担心多行字符串。你可以简单地把它们写成

> `foo
...     bar`
'foo\n    bar'

注意: 我使用 io.js v2.4.0 评估上面显示的所有模板字符串。您还可以使用最新的 Chrome 来测试上面显示的示例。

注意: ES6 规范 现已最终确定,但尚未被所有主要浏览器实施。

根据 Mozilla Developer Network 页面,这将从以下版本开始实现基本支持:Firefox 34、Chrome 41、Internet Explorer 12。如果您是 Opera、Safari 或 Internet Explorer 用户并且现在对此感到好奇, 这个试验台 可以一直玩到大家都支持为止。

原文由 thefourtheye 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题