【问题标题】:Why does the program exit main loop?为什么程序退出主循环?
【发布时间】:2016-03-12 05:03:33
【问题描述】:

我有以下代码可以传达问题的本质:

var body = "";
for(var i=0; i<=5000; i++) {
  body += "if(str==='value" + i + "') 1==1;\n";
}
body += "return str;";

var f1 = new Function("str", body);
var f2 = new Function("str", body);

console.log(f1('test1'));
console.log(f2('test2'));

// main loop
for(var i=0; i<100000; i++) {
  f1("string");
  f2("string");
  console.log(i);
}

console.log("fin!");

为什么主循环循环到最后还没有成功,程序就退出了(所以不显示错误信息)?

PS 行“鳍!”不会显示。

我的nodejs版本是5.0.0

我的实际输出:

test1
test2
1
2
3
.
.
~1971

【问题讨论】:

  • ...你想用这个实现什么?看起来一些主要的黑客正在发挥作用。
  • 发布整个函数和你得到的输出。
  • 不确定您要完成什么,但运行此代码最后会产生“fin”...
  • 我有一百万个字符串,我想检查它们到〜10000个条件......
  • 你的函数没有做任何事情,只是返回传入的相同字符串

标签: javascript node.js


【解决方案1】:

试试这个:

var i = 0;    
for(i=0; i < 5001; i++) {
      body += "if(str==='value" + i + "') 1==1;\n";
    }

但我认为功能有问题...

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 2013-08-04
    相关资源
    最近更新 更多