BOM浏览器对象模型

2023-10-24  本文已影响0人  渚清与沙白

BOM是浏览器对象模型,提供独立于内容而与浏览器窗口进行交互的对象,核心对象是window。

window对象

特点

  1. window是一个全局对象,定义在全局作用域中的变量和函数都会变成window对象的属性和方法,在调用时可以省略。alter() 、prompt()都是属于window对象的方法。
  2. window是js访问浏览器的接口。
  3. window对象的特殊属性name
window常见事件
   // 重复添加同一个事件,存在覆盖问题
    window.onload = function(){}
    // 重复添加同一个事件,不会存在覆盖问题
    window.addEventListener('load',function(){})

    // DOMContentLoaded事件触发式,仅仅当DOM元素加载完成,不包括样式、图片和flash等
    document.addEventListener('DOMContentLoaded',function(){})
window.onresize = function(){}
window.addEventListener('resize',function(){
      // 当前浏览器屏幕的宽度
      if(window.innerWidth < 800){

      }
})

location对象

location对象是window对象下一个属性。

navigator对象

包含了浏览器相关信息,最常使用的属性是userAgent,可以通过该属性来检测客户端是PC端还是移动端。

image.png
userAgent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
function isMobile() {
      if (
        navigator.useAgent.match(
          /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
        )
      ) {
        window.location.href = ""; //手机
      } else {
        window.location.href = ""; //电脑
      }
    }

history对象

history对象与浏览器历史记录进行交互

本地存储

浏览器本地储存只能存储字符串,存储对象需要进行json编码后存储。

window.sessionStorage
window.localStorage

this指向

   window.setTimeout(function(){
        console.log(this);// this 指向window
    },2000);
    let user = {
        say:function(){
            console.log(this);
        }
    };
    user.say();// user调用了say函数,所以this指向user

    let btn = document.querySelector('button');
    btn.onclick = function(){
        console.log(this); // btn调用了这个函数,所以this指向btn
    }
    function Fun(){
        console.log(this);// this指向的是fun实力对象
    }
    let fun = new Fun();

JS执行机制

同步异步

异步任务分类

  1. 普通事件 (click, resize)
  2. 资源加载 (load, error)
  3. 定时器
执行机制 事件循环
  1. 先执行执行栈的同步任务
  2. 异步任务(回调函数)放入异步任务队列中
  3. 一旦执行栈中所有同步任务完成,系统会按照次序读取任务队列中的异步任务,于是异步任务结束等待状态,放入执行栈,开始执行。


    image.png
上一篇 下一篇

猜你喜欢

热点阅读