我的理解是while条件的内容在条件为真时执行 . 在使用一本很棒的O'Riely书中的一个例子的时候,我遇到了while循环的这个实现......
window.onload = function(){
var next, previous, rewind; // globals
(function(){
// Set private variables
var index = -1;
var data = ['eeny', 'meeny', 'miney', 'moe'];
var count = data.length;
next = function(){
if (index < count) {
index ++;
};
return data[index];
};
previous = function(){
if (index <= count){
index --;
}
return data[index];
};
rewind = function(){
index = -1;
};
})();
// console.log results of while loop calling next()...
var a;
rewind();
while(a = next()){
// do something here
console.log(a);
}
}
我想我想知道为什么,在这段代码中,while循环无法无限地解析为真?在var索引停止递增()之后函数next()没有返回false,是吗?控制台不应该输出eeny,meeny,miney,moe,moe,moe,moe .....等......
我知道这可能是以某种形式提出的,但已经完成了搜索,无法找到解释使用 while (a = function()) {// do something} 以及在一次通过数组后该循环如何停止的问题或答案 .