Javascript 为什么程序退出主循环?

Javascript 为什么程序退出主循环?,javascript,node.js,Javascript,Node.js,我有以下代码来传达问题的本质: 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

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

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!");
试试这个:

var i = 0;    
for(i=0; i < 5001; i++) {
      body += "if(str==='value" + i + "') 1==1;\n";
    }
var i=0;
对于(i=0;i<5001;i++){
body+=“如果(str=='value'+i+')1==1;\n”;
}

但我认为这些函数被窃听了…

。。。你想用这个达到什么目的?看起来有一些主要的攻击在起作用。发布整个函数和你得到的输出。不确定你想要完成什么,但运行此代码会在最后产生“fin”…我有一百万个字符串,我想检查它们到10000个条件…但是你的函数没有做任何事情,只是返回传入的相同字符串
var i = 0;    
for(i=0; i < 5001; i++) {
      body += "if(str==='value" + i + "') 1==1;\n";
    }