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一样。(不显示字母字符串。)