gpt4 book ai didi

javascript - 具有奇怪条件的循环

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:11:13 26 4
gpt4 key购买 nike

我在阅读 MDN 教程 "A re-introduction to JavaScript (JS tutorial)" 时看到了这个片段:

function countChars(elm) {
if (elm.nodeType == 3) { // TEXT_NODE
return elm.nodeValue.length;
}
var count = 0;
for (var i = 0, child; child = elm.childNodes[i]; i++) {
count += countChars(child);
}
return count;
}

我不明白的是for循环语句。具体来说,条件语句 child = elm.childNodes[i]。我一直了解到循环中的条件应该是合乎逻辑的。对我来说,这是一项任务。

我失去了什么?

最佳答案

child = elm.childNodes[i] 中的 i 大于数组的长度时,deklaration 被评估为 undefined。在 js 中 undefined 等于 false Boolean(undefined) -> false

因此,这是一个 bool 方程。

这种等式是危险的,因为如果数组包含等于 false 的元素 (null, 0, false),则循环将停止而不迭代所有元素。

关于javascript - 具有奇怪条件的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46044054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com