在下面的示例代码中,我想知道为什么名为child的变量必须是全局的(无var)才能使代码正常工作。我还想知道下面的代码是否因为有一个全局变量而被认为是不好的做法,以及下面代码的更好实践的再现可能看起来如何。谢谢。
<!DOCTYPE html>
<meta charset="UTF-8">
<title>dom</title>
<div class="product">
<h2> Product Name </h2>
<img src="pic.jpg" />
<p> Description </p> </div>
<script>
var products = document.getElementsByClassName("product"),
child; // how come var breaks the code ?
for ( i = 0; i < products.length; i++) {
child = products[i].firstChild;
while (child.nodeType !== 1) {
child = child.nextSibling;
}
console.log(child);
}
</script>