假设我有一个字符串,例如
"${a + b}"
,它是从JSON中读取出来的,我想将其解释为ES6模板文字。我认为下面这个方法可能有效:var x = {"add": "${a + b}"};
var a = 10, b = 20;
alert(`${x.add}`);
但是这样的警告看起来像是${a + b}
,所以它只进行了一层替换。
尝试通过再次解释变量来变得聪明起来:
var a = 10, b = 20;
var x = {"add": "${a + b}"};
var i = `${x.add}`;
alert(`${i}`);
这仍然会警报为${a + b}
。
尝试更聪明一些:
var a = 10, b = 20;
var x = {"add": "${a} + ${b}"};
var i = `${x.add}`;
alert(`${i}`);
这会警报为 ${a} + ${b}
。
从一个字符串开始,比如"${a + b}"
,有没有办法将其评估完成,就像它是一个模板文字一样?最好不要使用 eval
!