JavaScript数组循环

JavaScript数组循环,javascript,Javascript,下面我有一段代码: var divs = ["A", "B", "C"]; for (var i = 0, div; div = divs[i]; i++) { print(div); } 据我所知,for循环遍历divs数组的每个元素并打印它们。然而,我无法理解循环是如何终止的。有人能给我解释一下吗?循环终止,因为div=divs[i]在i超出范围时将未定义 由于undefined是一个错误的值,因此认为该条件未满足,循环停止 请注意,您是在做作业,而不是比较。赋值表达式返回已赋值的

下面我有一段代码:

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

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

循环终止,因为
div=divs[i]
i
超出范围时将
未定义

由于
undefined
是一个错误的值,因此认为该条件未满足,循环停止

请注意,您是在做作业,而不是比较。赋值表达式返回已赋值的值,该值用于条件


您还应该注意,只有当数组的任何成员都不为假时,此技术才是可靠的。例如,如果数组中有一个
0
,它将提前终止。

循环终止,因为
div=divs[i]
i
超出范围时将
未定义

由于
undefined
是一个错误的值,因此认为该条件未满足,循环停止

请注意,您是在做作业,而不是比较。赋值表达式返回已赋值的值,该值用于条件


您还应该注意,只有当数组的任何成员都不为假时,此技术才是可靠的。例如,如果数组中存在
0
,它将提前终止。

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

div = divs[i]

通常,您会使用
i
,这会产生
true
false
。这里,表达式的计算结果依次为
“A”
“B”
“C”
,以及
未定义的
undefined
在这里的行为类似于
false
:它终止循环。这是因为
undefined
是一个“falsy”值,就像
false
is一样。(字母字符串不是。)

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

div = divs[i]
通常,您会使用
i
,这会产生
true
false
。这里,表达式的计算结果依次为
“A”
“B”
“C”
,以及
未定义的
undefined
在这里的行为类似于
false
:它终止循环。这是因为
undefined
是一个“falsy”值,就像
false
is一样。(不显示字母字符串。)