JavaScript第六天

<meta charset="utf-8">

定时器(两种)

  • setTimeout()
  • setInterval()

setTimeout() 炸弹定时器

  • 开启定时器

    image

    5s之后关闭广告

<img src="../imgs/ad.jpg" alt="" class="ad">
<script>
    setTimeout(function () {
        document.querySelector('.ad').style.display = 'none';
    }, 5000)
</script>

清除定时器

<button>点击停止炸弹</button>
<script>
    function callback() {
        alert('来颗华子')
    }
    var timer = setTimeout(callback, 5000)
    document.querySelector('button').addEventListener('click', function () {
        // 清除定时器
        clearTimeout(timer)
    })

</script>

  • setInterval() 闹钟定时器
    开启定时器

    image
<script>
    setInterval(function () {
        alert('来不来华子')
    }, 1000)
    // setTimeout  延时时间到了,就去调用这个回调函数,只调用一次 就结束了这个定时器
    // setInterval  每隔这个延时时间,就去调用这个回调函数,会调用很多次,重复调用这个函数
</script>

<button class="begin">开启定时</button>
<button class="stop">关闭定时</button>
<script>
    var begin = document.querySelector('.begin')
    var stop = document.querySelector('.stop')
    var time = null;
    begin.addEventListener('click', function () {
        time = setInterval(function () {
            console.log('你最帅')
        },500)
    })
    stop.addEventListener('click', function () {
      clearInterval(time)
    })
</script>

双十一倒计时

电子时钟

发送短信

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
手机号码: <input type="number"> <button>发送</button>
<script>
   var btn =  document.querySelector('button')
   var time = 3;
    btn.addEventListener('click', function () {
        btn.disabled = true;
        var timer = setInterval(function () {
            if (time == 0){
                time = 3;
                // 清除定时器
                clearInterval(timer);
                btn.disabled = false;
                btn.innerHTML = '发送';

            }else {
                btn.innerHTML = '还剩下'+time+'秒';
                time--;
            }
        }, 1000)
    })
</script>
</body>
</html>

location对象

image

url的一般语法

image
image
image

this指向问题

this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,一般情况下this的最终指向的是那个调用它的对象。
现阶段,我们先了解一下几个this指向

  1. 全局作用域或者普通函数中this指向全局对象window(注意定时器里面的this指向window)
  2. 方法调用中谁调用this指向谁
  3. 构造函数中this指向构造函数的实例
<button>点击</button>
<script>
    // this 一般情况下this指向的是调用那个对象
    console.log(this)  // window
    // 全局作用域或者普通函数中this指向全局对象window
    function fn() {
        console.log(this)
    }
    window.fn()
    window.setTimeout(function () {
        console.log(this)
    }, 1000)
    2\. 方法调用中谁调用this就指向谁
    var o = {
        sayHi: function () {
            console.log(this)
        }
    }
    o.sayHi();
    var btn = document.querySelector('button')
    // btn.onclick = function () {
    //     console.log(this)// 指向btn
    // }
    btn.addEventListener('click', function () {
        console.log(this)// 指向btn
    })

    // 构造函数
    function Fun() {
       console.log(this) // 指向f实例对象
    }
    var f = new Fun();
</script>

作者:method
链接:https://www.jianshu.com/p/64a09aa26dfd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。