`

javascript中settimeout和setinterval函数的用法和实例

阅读更多

关键字: javascript中settimeout和setinterval函数的用法和实例

 


1.用法
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
区别:
setTimeout(表达式,延时时间);//只执行一次,无周期
setInterval(表达式,交互时间);//周期='交互时间'

停止:
主要是利用
window.clearInterval(intervalID);
window.clearTimeout(timeoutID);


2.示例
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 <script>
  function testTimeout() {
   var kk = 1;
   //1.能够调用外部变量
   //setTimeout(function(){alert(kk);},2000);
   
   //2.在执行表达式内部结束这个定时器   
   var intervalId = setInterval(function(){
                   if (kk++ == 3) clearInterval(intervalId);
                    alert(111);  
                  }, 1000);
  }
  testTimeout();
 </script>

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(){
      //...
}
可写为
setTimeout("a()",1000)

setTimeout(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);
    }
   
    3,在类中使用setTimeout
    终于到正题了,其实在类中使用大家遇到的问题都是关于this的,只要解决了这个this的问题就万事无忧了。
呵呵。让我们来分析一下:
   
    function xilou(){

        this.name="xilou";
        this.sex="男";
        this.num=0;
    }
    xilou.prototype.count=function(){
        this.num+=1;
        alert(this.num);
        if(this.num>10){return;}
        //下面用四种方法测试,一个一个轮流测试。
        setTimeout("this.count()",1000);//A:当下面的x.count()调用时会发生错误:对象不支持此属性或方法。
        setTimeout("count()",1000);//B:错误显示:缺少对象
        setTimeout(count,1000);//C:错误显示:'count'未定义
        //下面是第四种
        var self=this;
        setTimeout(function(){self.count();},1000);//D:正确
       
    }
   
    var x=new xilou();
    x.count();
   
    错误分析:
    A:中的this其实指是window对象,并不是指当前实例对象
    B:和C:中的count()和count其实指的是单独的一个名为count()的函数,但也可以是window.count(),因为window.count()可以省略为count()
    D:将变量self指向当前实例对象,这样js解析引擎就不会混肴this指的是谁了。
   
    话说回来,虽然我们知道setTimeout("this.count()",1000)中的this指的是window对象,但还是不明白为什么会是
    window对象^_^(有点头晕...)
    那我们可以想象一下这个setTimeout是怎样被定义的:
    setTimeout是window的一个方法,全称是这样的:window.setTimeout()
    那应该是这样被定义的:
    window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
        //.....代码
        return timer//返回一个标记符
    }
    所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了。

分享到:
评论

相关推荐

    vue 解决setTimeOut和setInterval函数无效报错的问题

    问题在于,当在Vue组件的方法中使用`setTimeout`或`setInterval`时,由于函数内部的`this`不再指向Vue实例,而是指向全局对象(在浏览器环境中通常是`window`)。因此,当尝试调用如`this.time()`这样的方法时,...

    Javascript中setTimeOut和setInterval的定时器用法

    JavaScript中的定时器函数setTimeout和setInterval是用于在特定时间后执行代码的重要工具。这两个函数虽然都用于处理时间相关的任务,但使用场景和方式各有不同。 setTimeout函数用于在指定的毫秒数后调用一次函数...

    js中的setInterval和setTimeout使用实例.docx

    javascript 中的 setInterval 和 setTimeout 使用实例 在 javascript 中,有两个重要的定时执行函数,即 setInterval 和 setTimeout。这两个函数都可以用来执行某个函数或表达式,但它们之间有一些关键的区别。 ...

    给c#添加SetTimeout和SetInterval函数

    在JavaScript中,`setTimeout`和`setInterval`是两个非常重要的函数,它们分别用于在指定时间后执行一次回调函数和周期性地重复执行回调函数。然而,C#标准库并没有直接提供这两个函数,但我们可以根据JavaScript的...

    javascript 不停(setInterval)/延时(setTimeout)函数使用实例

    在网页开发中,JavaScript 提供了两种非常重要的方法来实现代码的定时执行,这两个方法分别是 setTimeout 和 setInterval。在本文中,我们将详细探讨这两个方法的定义、用法以及它们在实现定时功能方面的实例。 ###...

    javascript经典实例源码

    8. **定时器和延迟操作**:setTimeout和setInterval用于在特定时间后执行函数,理解它们的工作原理以及如何清除定时器是开发动态应用的关键。 9. **正则表达式**:JavaScript提供了强大的正则表达式支持,用于模式...

    Javascript对象中关于setTimeout和setInterval的this介绍

    但是,在面向对象编程中,我们经常会在对象的方法中使用setTimeout或setInterval,这时就会遇到一个问题,即在异步执行的回调函数中,this的指向并不如我们所愿地指向当前对象。 首先,我们要知道,在JavaScript中...

    解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题

    关于在Vue中管理setTimeout和setInterval,尤其是涉及到Vue的路由切换时定时器未被销毁的问题,主要涉及到Vue的生命周期钩子、JavaScript的this关键字以及ES6箭头函数的特性。 首先,Vue中的生命周期钩子允许我们在...

    javascript经典实例大全

    这些通常涉及到CSS属性的修改,如`transition`和`animation`,以及定时器函数`setTimeout`和`setInterval`。 5. **表单验证**:JavaScript可以实时验证用户在表单中输入的数据,防止无效数据提交到服务器。实例可能...

    JavaScript编程实例五十讲

    12. 性能优化:理解DOM操作的性能影响,学会使用setTimeout和setInterval的正确方式,以及利用浏览器提供的开发工具进行性能分析和调试。 通过《JavaScript编程实例五十讲》这本书,你可以逐步掌握这些概念,并通过...

    300个JavaScript应用实例

    setTimeout和setInterval用于设置定时任务,而回调函数常用于异步操作的结果处理。实例将展示如何使用定时器实现延时操作,以及如何处理异步操作的回调。 8. **ES6新特性** ES6(ECMAScript 6)引入了许多新特性...

    javascript 经典实例大全四

    CSS3和JavaScript结合可以创建复杂的动画效果,如计时器、定时器(setTimeout和setInterval)常用于实现动态效果。 八、样式操作 JavaScript不仅可以改变DOM元素的内容,还能修改其样式。通过操作`style`对象,可以...

    Vue中使用 setTimeout() setInterval()函数的问题

    在Vue.js框架中,`setTimeout()` 和 `setInterval()` 是JavaScript的原生函数,用于实现异步编程,即延迟或周期性地执行某段代码。然而,在Vue的上下文中使用这两个函数时,需要注意一些特定的问题,主要是由于...

    js代码-settimeout 模拟实现 setinterval(带清除定时器的版本)

    在JavaScript中,`setTimeout`和`setInterval`是两个非常重要的定时器函数,它们用于在指定的时间后执行特定的函数。然而,`setInterval`在某些情况下可能不如我们期望的那样工作,因为它会周期性地不间断执行,即使...

    javascript源代码_经典实例100.rar

    10. **动画与定时器**:通过setTimeout和setInterval可以实现定时任务,结合CSS3或JavaScript自身实现页面上的动画效果。 这个压缩包中的.chm文件是一种Windows的帮助文件格式,包含HTML、图像和其他资源,用于离线...

    600个javascript经典实例(内含源码)

    9. **定时器和事件循环**:setTimeout和setInterval是JavaScript中的定时器,而事件循环是理解异步编程的关键,例如回调函数、Promise、async/await等。 10. **错误处理**:学习如何通过try/catch处理运行时错误,...

    javascript经典实例

    7. **定时器与回调函数**:setTimeout和setInterval用于定时执行任务,回调函数是处理异步操作的关键。 8. **正则表达式**:用于文本匹配和搜索的强大工具,常用于表单验证和数据提取。 9. **错误处理**:try......

    Javascript实例300道

    1. **时间日期篇**:JavaScript提供了内置的Date对象来处理日期和时间,实例可能包括创建日期对象、格式化日期字符串、计算日期差以及定时任务(如setTimeout和setInterval)的实现。 2. **文本特效篇**:这一部分...

    500javascript经典实例

    9. **定时器与动画**:setTimeout和setInterval函数可以实现定时任务,而利用requestAnimationFrame可以创建流畅的动画效果。实例可能涉及页面计时器、倒计时、平滑滚动等。 10. **ES6及新特性**:JavaScript的...

Global site tag (gtag.js) - Google Analytics