我可以在不使用 'eval' 的情况下捕获变量中 'for' 语句的 return 值吗?

Can I capture the return value of a 'for' statement in a variable without using 'eval'?

Javascript的for声明returnsundefined,至少当我在Chromium的JS repl中使用它时:

> 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 来做到这一点。可能吗?

for 语句允许您遍历项目集合,这意味着将在 for 的主体之间执行一条指令,例如:

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

for 语句没有 return 值,您看到的是开发 chrome 工具 returning 未定义。

阅读更多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]