JavaScript之BOM(上)

Window对象
1.BOM(浏览器对象模型)
2.定时器-延时函数
3.JS执行机制
4.location对象
5.navigator对象
6.history对象

一.BOM(浏览器对象模型)

1.BOM(Browser Object Model)是浏览器对象模型
在这里插入图片描述
2.window对象是一个全局对象,也可以说是JavaScript中的顶级对象
3.像document、alert()、console.log()这些都是window的属性,基本BOM的属性和方法都是window的。
4.所有通过var定义在全局作用域中的变量、函数都会变成window对象的属性和方法
5.window对象下的属性和方法调用的时候可以省略window

二.定时器-延时函数

1.JavaScript内置的一个用来让代码延迟执行的函数,叫setTimeout
2.语法

setTimeout(回调函数,等待的毫秒数)

setTimeout仅仅只执行一次,所以可以理解为就是把一段代码延迟执行,平时省略window

setTimeout(function(){
   console.log('时间到了')
},2000)

3.清除延时函数:

let timer = setTimeout(function(){
   console.log('时间到了')
},2000)
clearTimeout(timer)

4.注意点:
*延时器需要等待,所以后面的代码先执行
*每一次调用延时器都会产生一个新的延时器

5.两种定时器对比:执行的次数
*延时函数setTimeout:执行一次
*间歇函数setInterval:每隔一段时间就执行一次,除非手动清除

三.JS执行机制

1.JavaScript语言的一大特点是单线程。同一时间只能做一件事。
导致一个问题:如果JS执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。

在这里插入图片描述
输出结果都是:1111 3333 2222

2.解决这个加载阻塞,利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程。JS中出现了同步和异步。
本质区别:流水线上各个流程的执行顺序不同

3.事件循环:
JS处理同步,浏览器处理异步。
主线程先处理同步,异步由浏览器处理完放在主线程等待。
在这里插入图片描述

在这里插入图片描述

四.location对象

  1. location的数据类型是对象,它拆分并保存了URL地址的各个组成部分
    2.常用属性和方法:
    href属性获取完整的URL地址,对其赋值时用于地址的跳转
 location.href = 'http://www.baidu.com'

search属性获取地址中携带的参数,符号?后面部分

console.log(location.search)

hash属性获取地址中的哈希值,符号#后面部分

location.hash
//后期vue路由的铺垫,经常用于不刷新页面,显示不同页面,比如:网易云音乐

reload用来刷新当前页面,传入参数true时表示强制刷新

<button>点击刷新</button>
<script>
    let btn = document.querySelector('button')
    btn.addEventListener('click',function(){
        //强制刷新,类似ctrl + f5
        location.reload(true)
         //刷新,类似 f5
        location.reload()
    })
</script>

五.navigator对象

*navigator的数据类型是对象,该对象下记录了浏览器自身的相关信息
*常用属性和方法
*通过userAgent检测浏览器的版本及平台

 //检测userAgent(浏览器信息)
 !(function(){
     const userAgent = navigator.userAgent
     //验证是否为Android或iPhone
     const android = userAgent.match(/(Android);?[\s\/]+([\d.]+)?/)
     const iphone = userAgent.match(/(iPhone\sOS)\s([\d_]+)/)
     //如果时Android或iPhone,则跳转至移动站点
     if(android || iphone){
         location.href = 'http://m/itcast.cn'
     }
 })();
 !function(){}()

六.history对象

history的数据类型是对象,主要管理历史记录,该对象与浏览器地址栏的操作相对应,如前进、后退、历史记录等。
常用属性和方法:
在这里插入图片描述

    <button>后退</button>
    <button>前进</button>
    <script>
        const back = document.querySelector('button:first-child')
        const forward = back.nextElementSibling
        back.addEventListener('click',function(){
            //后退一步
            history.back()
            // history.go(-1)
        })
        forward.addEventListener('click',function(){
            //前进一步
            history.forward()
            // history.go(1)
        })
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值