我知道在PHP中我们可以做这样的事情:
$hello = "foo"; $my_string = "I pity the $hello";
输出: "I pity the foo"
"I pity the foo"
我想知道JavaScript是否也可以实现同样的功能。在字符串内部使用变量而不使用串联-编写起来看起来更加简洁和优雅。
您可以利用模板文字并使用以下语法:
`String text ${expression}`
模板文字用 反 引号 (``) (重音)括起来,而不是双引号或单引号。
ES2015(ES6)中已引入此功能。
例
var a = 5; var b = 10; console.log(`Fifteen is ${a + b}.`); // "Fifteen is 15.
那有多干净?
奖金:
它还允许在JavaScript中使用多行字符串而不进行转义,这对于模板非常有用:
return ` <div class="${foo}"> ... </div> `;
浏览器支持 :
由于较旧的浏览器(主要是Internet Explorer)不支持此语法,因此您可能希望使用Babel/Webpack将代码转换为ES5,以确保其可在任何地方运行。
边注:
从IE8 +开始,您可以在其中使用基本的字符串格式console.log:
console.log
console.log('%s is %d.', 'Fifteen', 15); // Fifteen is 15.