为啥后面每次加好多hello?

为啥后面每次加好多hello?

<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>setInterval()</title>

        <style type="text/css">

            div{

                width:300px;

                height:300px;

                border:1px solid #333;

            }

        </style>

    </head>

    <body>

        <input type="button" value="开始">

        <br><br>

        <div></div>

        <script type="text/javascript">

         var btn=document.getElementsByTagName('input')[0],

         div=document.getElementsByTagName('div')[0];

         function hello(){         

           div.innerHTML+=('hello'+' ');

              setInterval(hello,1000);

         }

         btn.onclick=hello;

           //补充代码

        </script>

    </body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

测试了你的代码,从第三秒开始hello的数量就会成倍增加,因为你调用了两次hello函数,如下:

http://img1.sycdn.imooc.com//climg/5ab0a3910001b5b203330194.jpg

为了避免这种情况,可以之间在定时器里面直接写事件,参考修改代码:

http://img1.sycdn.imooc.com//climg/5ab0a4380001c35f05620285.jpg

自己再测试下,祝学习愉快~~

  • KD_35 提问者 #1
    懂了,其实我后面就是无限累加调用hello函数了
    2018-03-20 15:04:28
  • 好帮手慕星星 回复 提问者 KD_35 #2
    理解是对的哦!
    2018-03-20 15:20:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师