考虑以下代码:
var age = 3;
console.log("I'm " + age + " years old!");
除了字符串连接之外,还有其他方法可以将变量的值插入到字符串中吗?
考虑以下代码:
var age = 3;
console.log("I'm " + age + " years old!");
除了字符串连接之外,还有其他方法可以将变量的值插入到字符串中吗?
这是一个解决方案,要求您为对象提供值。如果不提供对象作为参数,则默认使用全局变量。但是最好还是坚持使用参数,因为它要干净得多。
String.prototype.interpolate = function(props) {
return this.replace(/\{(\w+)\}/g, function(match, expr) {
return (props || window)[expr];
});
};
// Test:
// Using the parameter (advised approach)
document.getElementById("resultA").innerText = "Eruption 1: {eruption1}".interpolate({ eruption1: 112 });
// Using the global scope
var eruption2 = 116;
document.getElementById("resultB").innerText = "Eruption 2: {eruption2}".interpolate();
<div id="resultA"></div><div id="resultB"></div>
如果要在console.log
输出中进行插值,则只需
console.log("Eruption 1: %s", eruption1);
^^
在这里,%s
就是所谓的“格式说明符”。console.log
具有内置的这种插值支持。
找不到我想要的东西,然后找到了-
如果您使用的是Node.js,则有一个内置的
util
软件包,其格式函数如下所示:巧合的是
console.log
,Node.js 现在也将其内置于风味中-