Day09-JavaScript

一.超时定时器

    <script>

        // BOM:浏览器 对象 模型
        // 浏览器 提供给我们一套api 用来控制浏览器的 行为

        // setTimeout(callback,ms);
        // 回调函数:在执行完一段代码之后 紧接着自动的去调用另一个函数

        setTimeout(function() {
            console.log("三秒之后执行");
        }, 3000)
        setTimeout(function() {
            console.log("两秒之后执行");
        }, 2000)
        setTimeout(function() {
            console.log("一秒之后执行");
        }, 1000)

        console.log(123);

        // 在一段时间之后 调用一次 回调函数
        // 定时器 是异步的
        // JS代码是单线程

    </script>

二.清除超时定时器

<body>

    <div class="box"></div>

    <script>

        var box = document.getElementsByClassName("box")[0];

        // 清除超时定时器 两种方法
        // 1.将定时器保存给一个变量之后 这个变量存储的是 定时器的ID
        // setTimeout()

        var timer = setTimeout(function() {
            console.log("两秒之后执行");

            // 定时器可以在内部清除
            clearTimeout(timer);
        }, 2000)
        console.log(timer);

        var timer2 = setTimeout(function() {
            console.log("三秒之后执行");
        }, 3000)
        console.log(timer2);

        // clearTimeout();
        // 清除定时器 其实就是把定时器的id删除 这样就不会执行了

        // 为什么要清除定时器?
        // 因为定时器会浪费 浏览器的性能,也可能造成内存的泄露 防止定时器叠加

        // 2.使用DOM对象来保存 定时器的ID
        box.timer3 = setTimeout(function() {
            console.log("一秒之后执行");
        }, 1000);
        console.dir(box);

        clearTimeout(box.timer3);

    </script>

</body>

三.间歇定时器

<body>

    <div class="box"></div>

    <script>

        var box = document.getElementsByClassName("box")[0];

        //间歇定时器 : 每隔一段时间之后调用一次 回调函数
        // setInterval(callback,ms)

        // setInterval(function () { 
        //     console.log("一秒执行一次");
        // }, 1000)

        function getTime() {
            var date = new Date();
            var y = date.getFullYear();
            var m = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : "0" + (date.getMonth() + 1);
            var d = date.getDate() >= 10 ? date.getDate() : "0" + date.getDate();
            var h = date.getHours() >= 10 ? date.getHours() : "0" + date.getHours();
            var f = date.getMinutes() >= 10 ? date.getMinutes() : "0" + date.getMinutes();
            var s = date.getSeconds() >= 10 ? date.getSeconds() : "0" + date.getSeconds();

            box.innerHTML = `${y}年${m}月${d}日    ${h}时${f}分${s}秒`;
        }
        getTime();

        // 模板字符串
        // box.innerHTML = `${y}年${m}月${d}日    ${h}时${f}分${s}秒`;
        // y + "年" + m + "月" + d + "日" + h + "时" + f + "分" + s + "秒"

        var timer = setInterval(getTime, 1000);

        // clearInterval(定时器id);
        // clearInterval(timer);

    </script>

</body>
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值