为了账号安全,请及时绑定邮箱和手机立即绑定

javascript无限循环

javascript无限循环

沧海一幻觉 2018-12-20 18:19:40
这里有一段代码: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>


查看完整回答
反对 回复 2019-01-27
  • 1 回答
  • 0 关注
  • 1384 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信