JavaScript eval()无法使用变量名

时间:2018-11-08 01:41:46

标签: javascript eval

为什么eval()不执行我的代码?

for (var i = 1; i <= 3; i++) {
  str = "var foo_" + i + "_bar = " + i;
  eval(str);
}
console.log(foo_1_bar);
console.log(foo_2_bar);
console.log(foo_3_bar);

2 个答案:

答案 0 :(得分:1)

在该迭代(foo_2_bar时未声明变量i = 1。您需要将console.log(...)放入循环之外。

我假设您正在使用js,因为eval有点危险。

for (var i = 1; i <= 3; i++) {
  str = "var foo_" + i + "_bar = " + i;
  eval(str);
}
console.log(foo_1_bar);
console.log(foo_2_bar);
console.log(foo_3_bar);

答案 1 :(得分:0)

您记录的变量不存在

for (var i =  1; i <= 3; i++) {

    str = "var foo_"+ i +"_bar = " + i;
    eval(str);

    console.log(foo_1_bar);
}