javascript无限循环

这里有一段代码:


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,为什么会造成无限循环呢?


沧海一幻觉
浏览 1385回答 1
1回答

千巷猫影

来,给你制造一段会无限循环的代码:唯一的不同是 判断循环的时候使用的是 alldivs.length ,而不是你拿出来的len.唯二的不同是,你要保证你的body中存在div,否则alldivs.length是0,不会触发for循环你已经声明并复制 len了,所以是不会变的,len是固定的.而 alldivs.lengt 则根据div数量变化<body>&nbsp; &nbsp; <div></div></body><script>&nbsp; &nbsp; var alldivs = document.getElementsByTagName('div'),&nbsp; &nbsp; &nbsp; &nbsp; len = alldivs.length;&nbsp; &nbsp; for (var i = 0; i <alldivs.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; document.body.appendChild(document.createElement('div'));&nbsp; &nbsp; }</script>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript