考虑这段代码:
var age = 3;
console.log("I'm " + age + " years old!");
除了字符串连接之外,还有其他方法可以将变量的值插入到字符串中吗?
原文由 Tom Lehman 发布,翻译遵循 CC BY-SA 4.0 许可协议
考虑这段代码:
var age = 3;
console.log("I'm " + age + " years old!");
除了字符串连接之外,还有其他方法可以将变量的值插入到字符串中吗?
原文由 Tom Lehman 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果适用,请使用 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 许可协议
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
从 ES6 开始,您可以使用 模板文字:
PS 注意反引号的使用:
``
。