javascript BOM对象详解

本文详细阐述了JavaScript的BOM对象,包括BOM的定义、构成,重点讲解了顶级对象window及其页面加载和窗口大小调整事件,还探讨了定时器的使用(setTimeout和setInterval)以及this指向问题。

javascript BOM对象详解

目标:本章节将分为9点详细介绍有关BOM对象的知识点
1.什么是BOM
2.BOM的构成
3.顶级对象window
4.window对象常见事件(页面加载事件和体调整窗口大小事件)
5.定时器(setTimeout()、setInterval())
6.this指向问题
7.location对象
8.navigator对象
9.history对象

1.什么是BOM

在这里插入图片描述

2.BOM的构成

在这里插入图片描述

3.顶级对象window

在这里插入图片描述

4.window常用事件

a.页面或者窗口事件

在这里插入图片描述在这里插入图片描述

b.调整窗口大小事件

在这里插入图片描述在这里插入图片描述

5.定时器

在这里插入图片描述

a.setTimeout()定时器炸弹

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

b.setInterval()闹钟定时器

在这里插入图片描述

<div>
        <span class="hour">1</span>
        <span class="minute">2</span>
        <span class="second">3</span>
</div>
    <script>
        // 1. 获取元素(时分秒盒子) 
        var hour = document.querySelector('.hour'); // 小时的黑色盒子
        var minute = document.querySelector('.minute'); // 分钟的黑色盒子
        var second = document.querySelector('.second'); // 秒数的黑色盒子
        var inputTime = +new Date('2019-5-1 18:00:00'); // 返回的是用户输入时间总的毫秒数

        countDown(); // 我们先调用一次这个函数,防止第一次刷新页面有空白 

        // 2. 开启定时器
        setInterval(countDown, 1000);
		
        function countDown() {
            var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
            var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数 
            var h = parseInt(times / 60 / 60 % 24); //时
            h = h < 10 ? '0' + h : h;
            hour.innerHTML = h; // 把剩余的小时给 小时黑色盒子
            var m = parseInt(times / 60 % 60); // 分
            m = m < 10 ? '0' + m : m;
            minute.innerHTML = m;
            var s = parseInt(times % 60); // 当前的秒
            s = s < 10 ? '0' + s : s;
            second.innerHTML = s;
        }
    </script>

在这里插入图片描述

6.this指向问题

在这里插入图片描述

<button>点击</button>
<script>
    // this 指向问题 一般情况下this的最终指向的是那个调用它的对象
    // 1. 全局作用域或者普通函数中this指向全局对象window( 注意定时器里面的this指向window)
    console.log(this);

    function fn() {
        console.log(this);
    }
    window.fn();
    window.setTimeout(function() {
        console.log(this);
    }, 1000);
    // 2. 方法调用中谁调用this指向谁
    var o = {
        sayHi: function() {
            console.log(this); // this指向的是 o 这个对象
        }
    }
    o.sayHi();
    var btn = document.querySelector('button');
    btn.addEventListener('click', function() {
            console.log(this); // 事件处理函数中的this指向的是btn这个按钮对象
        })
        // 3. 构造函数中this指向构造函数的实例
    function Fun() {
        console.log(this); // this 指向的是fun 实例对象
    }
    var fun = new Fun();
</script>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值