我试图回答这个question我遇到了一个奇怪的循环条件。
for (index1 = 1; index1 < 8; index1++) {
var op = '#';
for (index2 = index1; index2 - 1; index2--) { //this loop is weird to me
op = op + '#';
}
console.log(op);
}
在检查内循环为每个外循环迭代进行多少次迭代时,我得到了这个:
var x = 0;
for (index1 = 1; index1 < 8; index1++) {
//var op = '#';
for (index2 = index1; index2 - 1; index2--) {
var log = {};
log.a = x; //check value before increment
x++;
log.b = x; //check value after increment
console.log(`outer: ${index1}, inner: ${index2}`, log);
}
console.log(x);
x = 0;
//console.log(op);
}
如您所见,它会记录0, 1, 2, 3, 4, 5, 6
。
我的问题是:
内循环是否在第一个外循环迭代中没有迭代,因为
index2 - 1
等于零,这是假的吗?
答案 0 :(得分:1)
内循环是否在第一个外循环迭代中没有迭代,因为index2 - 1等于零,这是假的吗?
这是对的。为循环条件提供的任何假值都会立即停止循环。
虚假值为0
,NaN
,null
,undefined
,""
和false
。