【Web前端学习之路】JavaScript BOM操作 05(黑马课程笔记)

1、JS执行机制

JavaScript语言的一大特点就是单线程,即同一个时间只能做一件事。也就意味着,所有任务需要排队执行,这样导致的问题是:如果某项任务执行时间过长,会造成页面的渲染不连贯。

为了解决这个问题,利用CPU的计算能力,HTML5提出了Web Worker标准,允许JavaScript脚本创建多个线程,于是,JS执行机制出现了同步异步

同步:多个任务必须顺序执行。

异步:若某一任务执行时间长,可先执行其他任务。

同步与异步的本质区别:流水线上各个流程的执行顺序不同。

同步和异步

同步任务都在主线程上执行,形成一个执行栈。异步任务都是通过回调函数实现的,一般而言,异步任务有以下三种:

  1. 普通事件:如click、resize等
  2. 资源加载:如load、error等
  3. 定时器:setInterval、setTimeout等

异步任务相关回调函数添加到任务(消息)队列中。

JS执行机制

  1. 先执行执行栈中的同步任务
  2. 异步任务(回调函数)放入任务队列中进行等待

(注:回调函数只有进行了相应行为或者是到达时间后才放入任务队列,否则只是交给异步处理程序处理)

     3. 一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,被读取的异步任务则结束等待状态进入执行栈,开始执行

JS执行具体流程 

事件循环:主线程任务执行完毕后,会查询任务队列,从中取出一个任务推入主线程进行处理,完毕后继续重复该动作。

2、BOM中的常见对象

location对象

window对象提供了一个location属性,用于获取或设置窗体的URL,并可以用于解析URL。因为这个属性返回的是一个对象,所以也称为location对象。

URL(此处暂做了解):统一资源定位符,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该如何处理它

URL的一般语法格式:

protocol: //host [:port] / path / [?query] #fragment

 举例:https://www.bilibili.com/video/BV1k4411w7sV?p=91&spm_id_from=pageDriver

location对象的属性

 跳转页面:给location.href重新赋值即可(不激烈浏览历史,不可后退)

 获取URL参数案例:

 

navigator对象

navigator对象包含有关浏览器的信息,最常用的是userAgent,该属性可以返回由客户机发送服务器的user-agent头部的值,判断是由何种设备打开网页。

history对象

history对象与浏览器历史记录进行交互,该对象包含用户(在浏览器窗口中)访问过的URL

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值