我可以在不使用'eval'的情况下捕获变量'for'的返回值吗?

时间:2018-11-14 21:42:08

标签: javascript eval

至少在我在Chromium的JS repl中使用Javascript的for语句时,它会返回undefined

> for (i=0;i<1;i++);
: undefined

因此,我希望下面的语句能这样解释:

> a = for (i=0;i<1;i++);
: undefined 

反而我得到

a = for (i=0;i<1;i++);
VM488:1 Uncaught SyntaxError: Unexpected token for

我能想到的唯一解决方法是a = eval("for (i=0;i<1;i++);"),它确实有效。但是,正如我的问题所述,我想使用eval来完成 。有可能吗?

1 个答案:

答案 0 :(得分:1)

for语句使您可以迭代一组项目,这意味着将在for主体之间执行一条指令,例如:

for (i=0;i<1;i++){
  //this is the body
  console.log(i);
}

for语句没有返回值,您看到的是返回未定义的dev chrome工具。

了解更多https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for

您可能想做的是:

var myValues = []; // an array
for (i=0;i<5;i++){
  values.push(i)
}

console.log(values); // [0, 1, 2, 3, 4]