JavaScript中的setTimeout和setInterval

1. 两个函数各自的意义

 

setTimeout (fu,time,args);  //过time时间自动执行fn函数,fn可以是codestr可以使函数

setInterval(fn,time)args;  //每隔time时间执行fn函数 重复循环执行
 

 

2. 在浏览器下表现的差异

 

function f(){
    var s = 'arguments.length:'+arguments.length+'; ';
    for(var i=0,n=arguments.length;i< n;i++){
        s += ' ['+i+']:'+arguments[i]+'; ';
    }
    alert(s);
}
setTimeout(f,500,"javascript","AAA")
 

      上面这段代码在下面几个浏览器中变现并不相同:

 

ie中:  argument.length : 0

 

        ff中 : argument.lenght : 3 。。。。。

 

       chrome中 : argument.length : 2  

 

   出现错误的原因:

 

           ie中: 因为ie是支持多种脚本语言,所以第三个参数是用来表明语言类型的变量

 

           ff中: 会有三个参数是firefox的一个bug  他会在setTimeout函数最后添加一个参数

 

          chrome opera 等 数值正确

 

3. 如何解决ie的差异

 

            对于ie中无法传递参数可以通过匿名函数解决:

 

            例如: 

 

function inner(a){
                 alert(a);
           }

var str = "test";

setTimeout(function(){inner(str)},1000);
 

 

 

4. this问题

 

     setTimeout 中得函数调用的上下文是全局,就是this执行window对象。如果需要改变上下文环境可以使用apply动态传递this值。

 

5. JavaScript中的单线程性质

     http://www.phpweblog.net/rainman/archive/2009/01/05/6267.html

 

 

6. setTimeout和claerTimeout在循环中的使用

 

参考文章http://www.iteye.com/topic/578308

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值