JavaScript教程:setInterval()、 clearInterval()

setInterval()

每间隔指定时间,就会执行指定的函数

语法:

setInterval(fun, milliseconds);

参数:

  • fun:必需。要调用的函数。
  • milliseconds:必须。间隔时间,单位:毫秒

返回值: 返回类型为 number,本次间隔调用的唯一标示,主要用于取消间隔调用

clearInterval()

传入 setInterval() 返回值,停止该 setInterval() 调用的函数

例子

倒计时

let i = 10
function fun(){
  console.log("",i)
  i--
  if(i < 0){
    clearInterval(si)
  }
}

let si = setInterval(fun,1000)

执行结果:

10
9
8
7
6
5
4
3
2
1
0

案例1

  1. 显示时间,时间格式:HH:mm:ss,为了能够正常显示秒,每间隔 1秒,调用一次函数
  2. 点击 【停止调用】 按钮,停止调用
<div id="time"></div>
<input type="button" value="停止调用" id="stop">
<script>
    /*
    * 显示时间函数
    */
    function showTime(){
        //1. 创建Date对象
        var date = new Date()
        //2. 根据Date对象获取时分秒
        var time = date.toLocaleTimeString()
        // console.log(time)
        //3. 将时间字符串显示到页面上
        document.getElementById("time").innerText = time
    }
    // 加上此函数,页面显示时,直接显示时间。不加此句,第一秒不显示时间
    showTime()

    // 间隔1秒中,执行 test() 函数
    // 调用 setInterval() 会有一个返回值
    var i = setInterval(showTime,1000) 

    console.log("i = ",i)
    console.log("i 的类型:", typeof(i))

    document.getElementById("stop").onclick = function(){
        // 停止 i 指定的 重复执行
        clearInterval(i)
    }
</script>

案例2

倒计时

倒计时:<span id="box"></span>

<script>
    let i = 5
    let si = 0
    function show(){
        document.getElementById("box").innerText = i
        if(i===0){
            // 取消间隔调用
            clearInterval(si)
        }
        i--
    }
    // 每间隔1秒中,执行一次show() 函数
    // 将show函数对象,作为参数传给另一个函数,show是回调函数
    si = setInterval(show,1000)
    console.log("si:",si)
</script>

原文出处:/show_1IX3BDbaKGm7.html