如何从常规字符串构造模板字符串?

hai*_*770 21 javascript ecmascript-6 template-strings

所以我有这个string:

var name = "Chaim";
var templateStr = "Hello, my name is ${name}";
Run Code Online (Sandbox Code Playgroud)

如何将其转换为模板字符串,以便结果等于:

var template = `Hello, my name is ${name}`;
Run Code Online (Sandbox Code Playgroud)

有没有办法以编程方式构建模板文字?

Ber*_*rgi 29

有没有办法以编程方式构建模板文字?

不是"编程"和"文字"是对立的(除了你在编译器的领域).

最好将模板字符串命名为插值字符串文字.请不要将它们与模板混淆.如果要为模板使用动态创建的字符串,请使用您选择的模板引擎.

当然,模板文字可能有助于实现这些,你可能会匆匆忙忙做一些简单的事情

function assemble(literal, params) {
    return new Function(params, "return `"+literal+"`;"); // TODO: Proper escaping
//             ^^^^^^^^ working in real ES6 environments only, of course
}
var template = assemble("Hello, my name is ${name}", "name");
template("Chaim"); // Hello, my name is Chaim
Run Code Online (Sandbox Code Playgroud)

  • `模板字符串应该更好地被命名为插值字符串文字` - 它们不被称为准文字吗? (2认同)