【发布时间】:2016-02-03 16:52:28
【问题描述】:
我正在考虑对文本字符串中的${something} 变量进行独立解析,对它们执行eval() 并在结果字符串中替换。
是否有任何特定于 ES6 模板变量需要注意的地方?是什么让它们的行为与标准 eval() 的行为方式不同?
例子:
var value = // a string, number, object,... anything;
var a = `${value}`; // use ES6 template string
var b = '${value}'.replace('${value}', eval(value));
a 和 b 的结果在哪些方面以及为什么会有所不同?
【问题讨论】:
-
您检查过规格吗?
eval不能替代模板字符串变量的工作方式。 -
如果你询问 eval,以任何不同于“不要使用 eval”的方式,你都会得到反对意见。
-
@vitaly-t:如果您在问题中包含实际代码会有所帮助。您对“考虑做什么”的描述不足以给出合理的答案,我不知道您想如何以类似于模板文字行为的方式使用
eval。 -
@vitaly-t:这并不像你想象的那样有效。如果您只是省略
eval调用并将替换模式替换为value,它会更好(更接近模板文字) -
好吧..您的示例在当前形式中并没有多大意义,所以...改进它将使我们可以建立它。在当前示例中,
value是一个字符串,您正在评估该字符串。它将引发异常,因为any kind of value不是有效的 javascript。
标签: javascript node.js