JS基础第三课(定时器篇)

一、什么是BOM?

浏览器模型,提供了与浏览器窗***互的对象,核心对象是window

前面文章提及的alert(),prompt()都属于windows对象方法

二、window对象的常见事件

1、onload:页面加载事件,当文档内容加载完执行该事件

对比例子:

<script>
    var divDom = document.querySelector('divDom')
    console.log(divDom);//输出null
</script>
<div></div>
<script>
    window.onload = function(){
        var divDom = document.querySelector('div')
        console.log(divDom);//输出<div></div>
    }
</script>
<div></div>
2、onresize:调整窗口大小事件
<script>
    window.onresize = function(){
        console.log(window.innerHeight);
        console.log(window.innerWidth);
    }
</script>

三、定时器

1、延时器:延迟多少时间执行setTimeout

<p>请等待2秒</p>
<script>
    //写法一
    function test() {
        alert('执行')
    }
    setTimeout('test()',2000);
    //写法二
    setTimeout(function test(){
        alert('执行')
    },2000)
</script>

2、间隔多少时间去执行setInterval
<p>请等待2秒</p>
<script>
        //写法一
        function test() {
            console.log('执行');
        }
        setInterval('test()',2000);
        //写法二
        setInterval(function test(){
            console.log('执行');
        },2000)
</script>

3、回调函数callback

(1)概念:回调函数其实是一个参数,将这个函数作为参数传到别的函数里面,回调函数是最后执行的

(2)代码例子

<script>
    function A(callback) {
        callback()
        console.log('我是主函数');
    }
    function B() {
        console.log('回调函数');
    }
    function C() {
        console.log('第三个函数');
    }
    A(B)
    C()
</script>

4、清除定时器
<p>请等待</p>
<button class="btn1">清除1</button>
<button class="btn2">清除2</button>
<script>
    var timer1 = setTimeout(function test() {
        alert('执行1')
    },2000)
    var timer2 = setInterval(function test2() {
        console.log('执行2');
    },2000)
    var btn1 = document.querySelector('.btn1')
    btn1.onclick = function(){
        clearTimeout(timer1)
    }
    var btn2 = document.querySelector('.btn2')
    btn2.onclick = function(){
        clearInterval(timer2)
    }
</script>


5、同步和异步
(1)同步:前一个任务做完,再执行下一个任务,程序执行顺序与任务队列是同步的
(2)异步:执行一个任务的时候,还可以同时处理其他任务
(3)同步任务都在主线程上,形成一个执行栈
(4)异步任务是通过回调函数实现,然后放到任务队列(click、onload、定时器)
(5)执行顺序:先执行执行栈的同步任务,异步任务放到任务队列中,执行栈的所有同步任务执行完毕时,才回去按照顺序读取任务队列
<script>
    console.log(1);
    setTimeout(function(){
        console.log(2);
    },100)
    console.log(3);
</script>

JS及JQuery框架 文章被收录于专栏

JavaScript的基本语法(变量、数据类型、运算符等等),流程控制(顺序、分支、循环),数组,函数(作用域、预解析),对象(自定义、内置),DOM(节点操作、获取元素),BOM(定时器、回调函数、同步异步) JQuery框架的入口函数,隐式迭代,排他思想,链式编程,样式操作,属性操作,事件监听

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务