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

JS中setTimeout()和 interval()方法的用法

标签:
JavaScript

JS中setTimeout()方法的用法

            settimeout(表达式,延迟时间); 单位:ms(毫秒);1s=1000ms; 

  setinterval(表达式,交互时间);  单位:ms(毫秒);1s=1000ms; 

  window.settimeout()

   在执行时,它从载入后延迟指定的时间去执行一个表达式或者是函数;仅执行一次;和window.cleartimeout一起使用.

  window.setinterval()

   在执行时,它从载入页面后每隔指定的时间执行一个表达式或者是函数;(功能类似于递归函数);和window.clearinterval一起使用.

  1,基本用法:

   执行一段代码:  var i=0;

   settimeout("i+=1;alert(i)",1000);

   执行一个函数:

   var i=0;

   settimeout(function(){i+=1;alert(i);},1000);

   //比较上面的两种方法的不同。

   下面再来一个执行函数的:

  var i=0;

  function test(){

    i+=1;

    alert(i);

  }

  settimeout("test()",1000);

  也可以这样:

  settimeout(test,1000);

   总结:

   settimeout的原型是这样的:

   itimerid = window.settimeout(vcode, imilliseconds [, slanguage])

  settimeout有两种形式

  settimeout(code,interval)

  settimeout(func,interval,args)

  其中code是一个字符串

  func是一个函数.

  注重"函数"的意义,是一个表达式,而不是一个语句.

  比如你想周期性执行一个函数

 function a(){

   //...

 }

  可写为

  setinterval("a()",1000)

  或

  setinterval(a,1000)

  这里注重第二种形式中,是a,不要写成a(),切记!!!

  展开来说,不管你这里写的是什么,假如是一个变量,一定是一个指向某函数的变量;假如是个函数,那它的返回值就 要是个函数

  2,用settimeout实现setinterval的功能

  思路很简单,就是在一个函数中调用不停执行自己,有点像递归

  var i=0;

  function xilou(){

    i+=1;

    if(i>10){alert(i);return;}

    settimeout("xilou()",1000);

    //用这个也可以

    //settimeout(xilou,1000);

  }

window.setTimeout(func,delay);

func,代表所要执行的函数或代码字符串。

delay,延时参数,单位为毫秒,一秒=1000毫秒。

func中传递的函数或语句有变量输入时,变量的取值以延时后的执行时段时的取值为准,不以代码执行时段的值为准。例如:

代码:

for(var i=1;i<=50;i++)

{

       window.setTimeout("document.write(i)",1000);

}

这样写的意义是在程序执行完1秒后打印50个i,此时程序已执行完,i的取值为"51";

如果要是程序每隔1秒打印一个数,则程序要改写为

代码:

for(var i=1;i<=50;i++)

{

       window.setTimeout("document.write("+i+")",i*1000);

}

#Javascr


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
数据库工程师
手记
粉丝
52
获赞与收藏
361

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消