以下のコード例では、コードが機能するために、 childという変数がグローバル ( no 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>