JavaScript定时器与延时器

本文介绍了JavaScript中的定时器和延时器。定时器按照设定时间间隔循环执行程序,需要通过变量存储定时器ID并使用clearInterval来停止。延时器则按设定延迟时间一次性执行,使用setTimeout实现。在确保首次即时执行时,可以结合延时器来避免延迟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定时器是根据设定的时间间隔来循环执行程序,只要定时器不停止程序就会一直执行

setInterval(参数1,参数2)
参数1:要执行的程序必须是一个函数的形式function(){ 定义程序 }
参数2:执行程序的间隔时间单位是毫秒。时间间隔不能无限小,与计算机的刷新频率有关。一般最少定义0.1秒,也就是100毫秒

// 将定时器,存储在一个变量中
        var shuai1 = setInterval( function(){
            document.write('我怎么这么帅' + '<br>');
        } , 1000);

        var shuai2 = setInterval( function(){
            document.write('帅的突破天际' + '<br>');
        } , 1000);

在这里插入图片描述
要终止定时器的执行,需要有两个条件
①使用一个变量来存储定时器
②使用清除定时器方法参数是这个定时器的变量
如果程序中有多个定时器,清除哪个,就停止哪个。即使写多个参数,也只对第一个参数清除定时器

 var shuai1 = setInterval( function(){
            document.write('我怎么这么帅' + '<br>');
        } , 1000);

        var shuai2 = setInterval( function(){
            document.write('帅的突破天际' + '<br>');
        } , 1000);
        
        clearInterval(shuai1);//清除了名为shuai1的定时器

在这里插入图片描述
如何做到先让定时器运行一段时间,再停止定时器?

// 定义一个变量,存储执行次数。达到指定的执行次数时,清除定时器
        var a = 0;
        var shuai3 = setInterval( function(){
            document.write('如果好看犯了天条,那我早已罪恶滔天' + '<br>');
            a++;// 每次执行,变量自增
            if(a == 5){//执行5次后,清除定时器,终止程序的执行
            clearInterval(shuai3);
            }
        } , 1000);
        console.log(shuai3);

在这里插入图片描述
通过实例可以看到,定时器程序的第一次执行也要经过设定的间隔时间,并不能从一开始就执行。如何解决这个问题呢?

document.write('如果帅气需要缴税,那我早已倾家荡产'+'<br>');            
// 第一次向页面输出内容,是在间隔规定的3秒之后
        setInterval( function(){
            document.write('如果帅气需要缴税,那我早已倾家荡产'+'<br>');            
        } , 3000 )

在这里插入图片描述
延时器是按照设定的时间延迟程序的执行,延时器中的程序只能执行一次
可以简单的理解为定时炸弹到了指定的时间就会爆炸,并且只能爆炸一次

setTimeout(参数1,参数2);
参数1:和定时器一样也是函数形式,来定义要执行的程序内容
参数2:定义延迟时间,单位也是毫秒

setInterval(function(){document.write('万事皆允'+'<br>')} , 1000);

//延时3秒钟之后,执行间隔为1秒程序
        var yanshi = setTimeout( function(){
        setInterval(function(){document.write('万物皆虚')} , 1000);
        } , 3000 )    
        document.write(yanshi);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值