关于定时器执行代码的小知识点

      这两天看到浏览器对象模型的定时调用,系统自带的两个定时函数——window.setInterval(code,interval),window.setTimeout(code,time)

其中code都表示要执行的代码,那么问题来了,这里的执行代码有什么格式要求呢?
我自己做了下测试,一般来说,要实现间隔时间或者延时执行code,那么对code的书写要求是:
若直接写执行代码,则需要用双引号括起来,若执行代码采用成函数的格式,则不需要双引号。
来来来,咱举个栗子!
代码
  1. <h2>定时器执行代码</h2>
  2. <timeid="ShowTime"></time>
  3. <hr/>
  4. <buttononclick="Show()">显示时间并弹出提示框</button>
  5. <script>
  6. function getTime(){
  7. var time = document.getElementById('ShowTime');
  8. time.innerHTML =newDate().toLocaleTimeString();
  9. }
  10. functionShow(){
  11. varIntervalID= setInterval(getTime,1000);
  12. /*setTimeout("alert('5秒过后,你看到了我吧!')", 5000);*/
  13. /*setTimeout(function(){alert('5秒过后,你看到了我吧!')}, 5000);*/
  14. //以上两个定时执行code的格式才是正解!也就是我所写的——“若直接写执行代码,则需要用双引号括起来,若执行代码采用成函数的格式,则不需要双引号。”
  15. setTimeout(alert('5秒过后,你看到了我吧!'),5000);//这句的错误在于浏览器会立即执行alert,即无法达到5秒后显示alert的目的
  16. }
  17. </script>
正确的写入执行代码的效果
 
 未加引号的且没写成函数的执行代码
 通过上面的例子,我们可以看出,如果执行代码写的不正确的话,就会出现图2的情况,即没有实现定时的效果,而是直接把执行代码给执行了。
 
 





posted @ 2016-10-08 15:16  Jener_Yan  阅读(1415)  评论(0编辑  收藏  举报