前端-js基础-BOM浏览器对象模型2

#博学谷IT学习技术支持

目录

定时器

JS执行队列


  • 定时器

    • setTimeout( ) 定时器

      • setTimeout( ) 方法用于设置一个定时器,该定时器在定时器到期后执行调用函数
      • window 可以省略
      • 这个调用函数可以直接写函数,或者写函数名或者采取字符串'函数名()' 三种形式,最后一种不推荐
      • 延迟的毫米数省略默认是0, 如果写,单位必须是毫秒
      • 因为定时器可能有很多,所以我们经常给定时器赋值一个标识符(名称)
      • setTimeout( ) ——回调函数(需要等待时间,时间到了才去调用这个函数,即回头调用,上一件事干完再回头调用这个函数)
    • 停止setTimeout( ) 定时器

      • clearTimeout() 方法取消先前用过调用 setTimeout()建立 的定时器
      • window 可以省略
      • 里面的参数就是定时器的标识符(名字)
    • setInterval( ) 定时器

      • 第一次执行也是间隔毫秒数之后执行,之后每隔毫秒数就执行一次
    • 停止setInterval( ) 定时器

      • window 可以省略
      • 里面的参数就是定时器的标识符
    • ⚠️区别

    • 案例
      • 5秒自动关闭广告
      • ⚠️京东秒杀倒计时(封装调用函数,防止第一次刷新时页面有空白)
      • 发送短信(60秒倒计时)
    • this
      • 一般情况下this的最终指向的是那个调用它的对象
      • 1. 全局作用域或者普通函数中this指向全局对象window( 注意定时器里面的this指向window)

      • 2. 方法调用中谁调用this指向谁

      • 3. 构造函数中this指向构造函数的实例

  • JS执行队列

    • JS是单线程,同一个时间只能做一件事。
    • 同步和异步
      • 单线程导致的问题就是后面的任务等待前面任务完成,如果前面任务很耗时(比如读取网络数据),后面任务不得不一直等待!!
      • 同步:前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。比如做饭的同步做法:我们要烧水煮饭,等水开了(10分钟之后),再去切菜,炒菜。
      • 异步:你在做一件事情时,因为这件事情会花费很长时间,在做这件事的同时,你还可以去处理其他事情。比如做饭的异步做法,我们在烧水的同时,利用这10分钟,去切菜,炒菜。
      • 本质区别:流水线上各个流程的执行顺序不同。

    • JS执行机制
      • 1、先执行 执行栈中的同步任务
      • 2、异步任务(回调函数)放在任务队列中
      • 3、一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行
      • 由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值