Javascript 循环变为无限时的增量

Javascript 循环变为无限时的增量,javascript,while-loop,directory,infinite-loop,Javascript,While Loop,Directory,Infinite Loop,我试图创建一个新文件夹,如果已经存在一个文件夹,那么它的末尾会有一个递增的数字,但是我最终进入了一个无限循环 var i=1; while (myFolder.exists == true) { var myFolder = new Folder(wf+"/"+curFile+"_folder"+i) i++; }; 任何帮助都将不胜感激 它看起来像是myFolder.exists是一个方法,而不是属性,因此您必须调用它: while (myFolder.exists()) { var

我试图创建一个新文件夹,如果已经存在一个文件夹,那么它的末尾会有一个递增的数字,但是我最终进入了一个无限循环

var i=1;
while (myFolder.exists == true) {
var myFolder = new Folder(wf+"/"+curFile+"_folder"+i)
i++;
};
任何帮助都将不胜感激

它看起来像是
myFolder.exists
是一个方法,而不是属性,因此您必须调用它:

while (myFolder.exists()) {
    var myFolder = new Folder(wf + "/" + curFile + "_folder" + i);
    i++;
};
否则,您将对方法本身进行评估,在布尔上下文中,方法本身确实总是
true


顺便注意,在循环中重新定义
myFolder
可能不是这里的问题。Javascript中的循环与封闭代码共享相同的作用域,变量将被提升到该作用域的开头。正如jdwire所说,它最初可以是
未定义的
,但随后您将收到一个错误,而不是触发无限循环。

您不断地重新声明myFolder并创建新文件夹(无论是什么)。结束循环的if条件在哪里?while循环第一次迭代之前声明的
myFolder
变量在哪里。while循环的主体将永远不会执行,因为
myFolder
为null,并且将引发错误。请同时说明中断条件是什么?你想达到什么目标?我们猜不到@jdwire,您完全正确,但它不会导致无限循环<代码>我的文件夹可能已在代码的某些部分初始化,但我们看不到。