JavaScript数组循环

时间:2012-07-22 16:05:40

标签: javascript

所以我在下面有这段代码:

var divs = ["A", "B", "C"];
for (var i = 0, div; div = divs[i]; i++) {  
  print(div);
}

据我了解,for循环遍历divs数组的每个元素并打印它们。然而,我无法理解循环如何终止。有人可以向我解释一下吗?

2 个答案:

答案 0 :(得分:4)

循环终止,因为当div = divs[i]超出范围时undefined将为i

由于undefined是假值,因此认为条件未得到满足,并且循环停止。

请注意,您正在执行分配,而不是进行比较。赋值表达式返回已分配的值,该值用于条件。

您还应该注意,只有当Array的成员都不是假的时候,这种技术才是可靠的。例如,如果Array中有0,它将提前终止。

答案 1 :(得分:2)

定义是否终止的for循环部分是第二部分:

div = divs[i]

通常情况下,您会使用产生i < divs.lengthtrue的{​​{1}}。此处,表达式随后将评估为false"A""B""C"undefined此处的行为类似于undefined:它会终止循环。那是因为false是像undefined那样的“虚假”值。 (字母串不是。)