这里有一段代码:var alldivs = document.getElementsByTagName('div'),len = alldivs.length;for(var i = 0; i < len; i++) { document.body.appendChild(document.createElement('div'));}为什么会造成无限循环?初始化变量alldivs时,页面中的div元素已经保存到alldivs这个变量中,循环执行前变量len也已经被初始化了。执行的循环仅仅是创建div元素,并没有重新初始化len,为什么会造成无限循环呢?
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
来,给你制造一段会无限循环的代码:
唯一的不同是 判断循环的时候使用的是 alldivs.length ,而不是你拿出来的len.
唯二的不同是,你要保证你的body中存在div,否则alldivs.length是0,不会触发for循环
你已经声明并复制 len了,所以是不会变的,len是固定的.
而 alldivs.lengt 则根据div数量变化
<body>
<div></div>
</body>
<script>
var alldivs = document.getElementsByTagName('div'),
len = alldivs.length;
for (var i = 0; i <alldivs.length; i++) {
document.body.appendChild(document.createElement('div'));
}
</script>
添加回答
举报
0/150
提交
取消