BOM-浏览器操作

一、window对象

1.1 BOM-浏览器对象模型

  • window : 是浏览器内置中的全局对象。
  • 属性:navigator、location、document、history、screen ,这些属性构成了BOM对象。
  • document 是实现 DOM 的基础,它其实是依附于 window 的属性。
  • 依附于 window 对象的所有属性和方法,使用时可以省略 window。

1.2 定时器-延时函数(重点)

  • 语法
//setTimeout 仅仅只执行一次
setTimeout(回调函数,等待的毫秒数)
  • 清除延时函数
let timer=setTimeout(回调函数,等待的毫秒数)
clearTimeout(timer)   
  • 延迟函数结合递归函数可实现 setInterval的功能
<body>
    <div></div>
    <script>
        let div = document.querySelector('div')
        //获取本地时间和延迟函数
        function fn() {
            div.innerHTML = new Date().toLocaleString()
            setTimeout(fn, 1000)
        }

        // 不要忘记调用函数
        fn()
    </script>
</body>
  • 两种定时器对比
间隔函数setInterval延时函数setTimeout
重复执行,首次执行会延时延时执行,只执行 1 次;结合递归可重复执行
clearInterval 清除clearTimeout 清除

1.3 JS执行机制(重点)

JS执行特点:单线程,同一时间只能做一件事,所有任务需要排队;为此,引入了同步和异步解决这个问题。

1.3.1 同步

  • 同步:前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的。
  • 同步任务:同步任务都在主线程上执行,形成一个执行栈。

1.3.2 异步

  • 异步:可同时进行多个任务。

  • 异步任务:
    – 普通事件:click、resize 等;
    – 加载事件: load、error 等 ;
    – 定时器: setInterval、setTimeout 等;
    – ajax。

  • 异步任务添加到任务队列中,通过回调函数实现

1.3.3 JS执行机制

  1. 先执行执行栈中的同步任务;
  2. 异步任务放入任务队列中;
  3. 执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。
    在这里插入图片描述

事件循环( event loop):主线程不断的重复获得任务和执行任务。

1.4 location对象

location 的数据类型是对象,它拆分并保存了 URL 地址的各个组成部分。

  • 常用属性
<script>

    // 1.href属性:获取完整的 URL 地址、实现自动跳转功能
    // 1.1 获取URL地址
    console.log(location.href)
    // 1.2 赋予地址,实现自动跳转
     location.href = 'https://www.baidu.com/'

    // 2.search属性:获取地址中携带的参数,符号 ?后面部分。
    // 应用场景:字符串截取,页面与页面之间传递数据,此处了解
    console.log(location.search)

    // 3.hash属性:获取地址中的啥希值,符号 # 后面部分。
    // 此处了解
    console.log(location.hash)

</script>
  • 常用方法
<body>
    <button>刷新</button>
    <script>
        // reload方法:刷新当前页面,传入参数 true 时表示强制刷新 。
        let btn = document.querySelector('button')
        btn.addEventListener('click', function () {
            // 刷新 有本地缓存
            location.reload()

            // 强制刷新 不使用本地缓存,重新加载最新资源
            location.reload(true)
        })

    </script>
</body>

1.5 navigator对象

navigator的数据类型是对象,主要用来获取浏览器的信息。

  • userAgent 属性: 检测浏览器的版本及平台;
  • navigator.userAgent;
  • 代码去网上复制粘贴即可。

1.6 histroy对象(了解)

history 的数据类型是对象,该对象与浏览器地址栏的操作相对应,如前进、后退、历史记录等。

  • 常用属性和方法
history对象方法作用
back()后退功能
forward()前进功能
go(参数)参数值:1表示前进一个页面,-1表示后退一个页面

二、swiper 插件

使用插件:

注意: 多个swiper同时使用的时候, 类名需要注意区分。


三、本地存储

3.1 本地存储特征

  • sessionStorage和localStorage;
  • 数据存储在用户浏览器中;
  • 设置、读取方便,页面刷新不丢失数据;
  • 容量较大。

3.2 localStorage

3.2.1 localStorage

  • 生命周期永久生效,除非手动删除 ,否则关闭页面也会存在;
  • 同一浏览器可多窗口共享数据;
  • 以键值对的形式存储使用。

3.2.2 简单数据类型操作

//1.存储数据
localStorage.setItem('key', value)

//2.获取数据
localStorage.getItem('key')

// 3.删除数据
localStorage.removeItem('key')

3.2.3 存储复杂数据类型存储(重难点)

  • JSON字符串
<script>         
    // JSON字符串 属性和值都用双引号包含
    let obj = {
        "uname": "酷盖",
        "age": "23",
        "address": "85号行星"
    }       
</script>
  • 存储:JSON.stringify(复杂数据类型) – 将复杂数据转换成JSON字符串;
<script>
   // 1.存储复杂数据类型:转换为json字符串 JSON.stringify()
    let obj = {
        uname: '酷盖',
        age: 23,
        address: '85号行星'
    }
    localStorage.setItem('obj', JSON.stringify(obj)  
</script>
  • 读取:JSON.parse(JSON字符串) – 将JSON字符串转换成对象。
<script>
   // 2.读取数据 JSON.parse()
    // console.log(typeof JSON.parse(localStorage.getItem('obj')))
    console.log(JSON.parse(localStorage.getItem('obj')))    
</script>

3.3 sessionStorage(了解)

用法跟localStorage 基本相同:

  • 生命周期为关闭浏览器窗口
  • 同一浏览器可多窗口共享数据;
  • 以键值对的形式存储使用

四、自定义属性(拓展)

  • 传统自定义属性
// 1.设置自定义属性
setAttribute('属性名', '属性值') 

// 2. 获取自定义属性
getAttribute('属性名')

// 3.删除自定义属性
removeAttribute('属性名') 
  • data- 自定义属性(重点)

html5推出的自定义属性,在标签上一律以 data- 开头,在DOM对象上一律以dataset对象方式获取。

<body>
    <!-- data- 开头自定义属性 -->
    <div class="box" data-name="Coolguy" data-id="85" data-index="1"></div>

    <script>
        let box = document.querySelector('.box')

        // dataset 获取自定义属性
        console.log(box.dataset.name)
        console.log(box.dataset.id)
        console.log(box.dataset.index)
    </script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值