跟着pink老师学前端之JavaScript-BOM

本文详细介绍了JavaScript的BOM,包括BOM的构成、window对象的事件(如窗口加载和调整大小)、定时器的使用、this关键字的理解、JS执行机制以及location对象和history对象的应用。通过案例解析了如何实现页面自动跳转和数据传递等功能。
摘要由CSDN通过智能技术生成

1. BOM概述

1.1 什么是BOM

BOM ( BrowserObject Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window,
BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。
BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分。

1.2 BOM的构成

window对象是浏览器的顶级对象,它具有双重角色。

  1. 它是JS访问浏览器窗口的一个接口。

  2. 它是一个全局对象。定义在全局作用域中的变量、函数都会变成window对象的属性和方法。在调用的时候可以省略window,前面学习的对话框都属于window对象方法,如alert()、prompt()等。

2. window对象的常见事件

2.1 窗口加载事件

window.onload = function () {};
或者
window.addEventListener('load',function(){});

window.onload是窗口(页面)加载事件,当文档内容完全加载完成会触发该事件(包括图像、脚本文件、CSS文件等),就调用的处理函数。

注意:

  1. 有了window.onload就可以把JS代码写到页面元素的上方,因为onload是等页面内容全部加载完毕,再去执行处理函数。

  2. window.onload传统注册事件方式只能写一次,如果有多个,会以最后一个window.onload为准。

2.2 调整窗口页面大小事件

resize

3. 定时器(回调函数)

3.1 setTimeout

  1. window.setTimeout(调用函数,延时时间);

  2. 延时单位是毫秒,可省略,默认是0;

  3. 这个调用函数可以直接写函数,还可以写函数名。

    3.1 直接写函数

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

    3.2 写函数名

    function callback() {
         
        console.log('爆炸了');
    }
    setTimeout(callback, 3000);
    
  4. 清除定时器clearTimeout(定时器名字)

    因为清除定时器要指明清除哪个定时器,所以要给定时器起一个名字,即赋值给一个变量。

    var btn = document.querySelector('button');
    var timer = setTimeout(function () {
         
        console.log('boom!');
    }, 5000);
    btn.addEventListener('click', function () {
         
        clearTimeout(timer);
    })
    

3.2 setInterval

  1. window.setTimeout(调用函数,延时时间);

    setInterval(function () {
         
        console.log('im setinterval');
    }, 2000);
    
  2. 延时单位是毫秒,可省略,默认是0;

  3. 与setTimeout不同的是,setInterval是每隔“延时时间”间隔就调用一次,属于重复调用。

  4. 清除定时器clearInterval(定时器名字)

    <button class="begin">开启定时器</button>
    <button class="stop">关闭定时器</button>
    <script>
        var begin = document.querySelector('.begin');
        var stop = document.querySelector('.stop');
        var timer = null;
        begin.addEventListener('click', function () {
          
            timer = setInterval(function () {
          
                console.log('riki');
            }, 1000);
        })
        stop.addEventListener('click', function () {
          
            clearInterval(timer);
        })
    </script>
    

3.3 倒计时案例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值