浅谈settimeout和setinterval的区别

我们先来了解一下setTimeout定时器,他的特点就是只能用一次,也称为一次性定时器。

setTimeout()只执行一次,setInterval()可以执行多次。

setTimeout(要执行的代码,间隔时间,参数1,参数2);

一.setTimeout的多种用法:

1,直接将js代码写在字符串中:

setTimeout("alert(123)",500);

2,在字符串中调用函数:

setTimeout("callFun()",500);

function callFun(){
alert(456);
}

 3,使用匿名函数:


setTimeout(()=>{
	    		alert(456)
	           },500);
 
 
或者 
 
 
setTimeout(function(){
	    		alert(456)
	       },500);

如果调用函数时需要传递参数:


var obj = {name:"xxx"}
setTimeout(()=>{
	alert(obj.name)
},500,obj);
 
或者
 
setTimeout(function(){
	alert(obj.name)
},500,obj);

假设这是vue的methods, aaa 内部用setTimeout调用 bbb ,并给bbb传递参数

methods:{
     aaa(){
           let that = this;
           var obj = {name:"xxx"}
           setTimeout(()=>{
               obj.name = "yyyyyyy";
	           that.bbb(obj)
           },500,obj);
 
    },
 
    bbb(obj){
        alert(obj.name);
    }
 
}

 接着看看 setInterval定时器,他的特点就是可以重复执行给定的函数

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。 

setInterval(function, milliseconds, param1, param2, ...)

setInterval(
      (name, gender) => {
        console.log(name + ' is ' + gender)
      },
      1000,
      'Tom',
      'boy'
    )

1、调用一个已命名函数:

var myVar;
 
function myFunction() {
    myVar = setInterval(alertFunc, 3000);
}
 
function alertFunc() {
    alert("Hello!");
}

 例如规定每隔两百毫秒打印一次 hello

 

setInterval(() => {
    console.log('hello')    
}, 200)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值