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

2022-08-29 22:34:04

请考虑以下代码:

var age = 3;

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

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


答案 1

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

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

附言请注意反引号的使用:。``


答案 2

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用户,并且现在对此感到好奇,那么这个测试平台可以用来玩,直到每个人都得到对此的支持。