如何在 eval 中使用动态字符串

How to use dynamic string in eval

let value = 'italic';
let varname = "fontSizeTitle";
eval(varname + "=" + value);

console.log(fontSizeTitle)

我有一个大项目,我在其中使用 eval() 将动态变量分配给动态字符串。这里的问题是它抛出一个错误说 italic is not defined 但是当我想将值用作字符串但又是动态的时?我如何告诉 eval() 我希望 value 是动态的。很抱歉没有发布我的项目代码,但它也是这里的确切场景。

italic 是字符串文字而不是变量名吗?如果是这样,您必须用引号将其括起来才能进行设置。

您当前的 eval 语句执行此操作:

fontSizeTitle = italic

这可能是应该的:

fontSizeTitle = 'italic'

以下代码片段将显示此工作原理:

let value = 'italic';
let varname = "fontSizeTitle";
let statement = varname + "='" + value + "'";
console.log(statement);
eval(statement );

console.log(fontSizeTitle)

我已将语句本身添加到控制台日志中,因此您可以看到实际执行的内容。