前端入门一之BOM、window对象常见事件、定时器、JS执行机制、location对象、navigatior对象、history对象

前言

  • JS是前端三件套之一,也是核心,本人将会更新JS基础、JS对象、DOM、BOM、ES6等知识点,这篇是BOM;
  • 这篇文章是本人大一学习前端的笔记;
  • 欢迎点赞 + 收藏 + 关注,本人将会持续更新。

文章目录

    • BOM
      • 1、BOM概述
      • 2、window对象的常见事件
        • 2.1、窗口加载事件
          • 2.1.1、区别
        • 2.2、调整窗口大小事件
      • 3、定时器
        • 3.1、setTimeout()定时器
        • 3.2、clearTimeout()停止定时器
        • 3.3、setInterval() 定时器
        • 3.4、clearInterval()停止定时器
        • 3.5、this指向
        • 发送信息案例
      • 4、JS执行机制
        • 4.1、JS是单线程
        • 4.2、一个问题
        • 4.3、同步与异步
      • 5、location对象
        • 5.1、url
        • 5.2、location对象属性
        • 5.3、location对象方法
      • 6、navigation对象
      • 7、history对象

BOM

在这里插入图片描述

1、BOM概述

  • BOM :是浏览器对象模型
  • 对象核心是window
DOMBOM
文档对象模型浏览器对象模型
DOM就是把文档当中一个对象把浏览器当作一个对象
DOM的顶级对象是documentBOM的顶级对象是 window
DOM主要学习的是操作页面的元素BOM学习的是浏览器交互的一些对象
兼容性好兼容性较差
  • BOM包含DOM
  • window对象是浏览器的顶级对象,它具有双重角色

2、window对象的常见事件

2.1、窗口加载事件

window.onload 是窗口页面加载事件,把文档内容完全加载完全会出阿飞该事件(包括图像,脚本文件,css文件等),就调用函数

//1.
window.onload = function() {};//2.
window.addEventListener("load",function() {});
  • 有了window.onload 就可以把js代码写到元素的上方
  • 如果由多个window.onload,就以第一个为准
  • 如果使用addEventListener则没有限制
document.addEventListener('DOMContentLoaded',function() {});
  • DOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash等
  • 如果页面图片多的话,访问到onload触发可能较长时间
2.1.1、区别
  • load等页面内容全部加载完毕后,包括页面dom元素,图片,flash,css等
  • DOMContentLoaded是DOM加载图片,不包括页面dom元素,图片,flash,css等,加载速度比load快一点
window.addEventListener('load',function() {alert(22);
})
document.addEventListener('DOMContentLoaded',function() {alert(33);
})
2.2、调整窗口大小事件

window.onresize是调整窗口大小加载事件,当触发时就调用的函数

window.onresize = function() {}
window.addEventListener('resize',function() {})
  • 只要窗口大小发送像素变化,就会触发这个事件
  • 经常用这个事件完成响应布局。window.innerWidth 当前屏幕的速度
<body><script>window.addEventListener('load',function() {var div = document.querySelector('div');window.addEventListener('resize',function() {if(window.innerWidth <= 800){div.style.display = 'none';} else {div.style.display = 'block';}})})</script><div>box</div>
</body>

3、定时器

window 对象提供了两个定时器

  • setTimeout( )
  • setInterval( )
3.1、setTimeout()定时器

**setTimeout()**方法用于设置一个定时器,该定时器在定时器到期后执行调用函数。

window.setTimeout(调用函数,延迟毫秒数)

注意

  • window可以省略
  • 调用这个函数
    • 可以直接写函数名
  • 延迟的毫秒数省略默认的是0,如果写,必须是毫秒
  • 因为定时器很多,说以经常给定时器赋值一个标识符
  • setTimeout()这个调用函数也称为回调函数 callback
function callback() {console.log('爆炸了');
}
var time1 = setTimeout(callback,3000);
var time2 = steTimeout(callback,5000);
3.2、clearTimeout()停止定时器
  • clearTimeout方法取消了先前通过调用setTimeout()建立的定时器
window.clearTimeout(timeoutID)
//timeoutID 是定时器的标识符

注意

  • window可以省略
3.3、setInterval() 定时器
  • setInterval方法重复调用一个函数,每隔这个时间,就去调用一次回调函数
window.setaInterval(回调函数,间隔的毫秒数);
  • window 可以省略
  • 注意第一次执行也是间隔毫秒数之后
3.4、clearInterval()停止定时器
  • claerInterval( )方法取消了先前通过调用setInterval()建立的定时器

注意

  • window可以省略
  • 里面参数就是标识符
3.5、this指向
  • this的指向在函数定义的时候确定不了的,只有函数执行的时候才能确定this指向谁
  • 全局变量或者普通函数中this指向全局对象window
发送信息案例
<body><input type = 'number'> <button>发送</button><script>var btn = document.querySetector('button');var time = 60;btn.addEventListener('click',function() {this.disabled = 'true';var timer = setInterval(function() {if(time == 0) {clearInterval(timer);this.disabled = 'flase';this.innerHTML = '发送';} else {this.innerHTML = '还剩下' + time + '秒';time--;}},1000);})</script>
</body>

4、JS执行机制

4.1、JS是单线程
  • 简单理解,同一时间只能做一件事情
4.2、一个问题
//1.
console.log(1);
setTimeout(function(){console.log(3);
} ,1000);
console.log(2);//2.
console.log(1);
setTimeout(function() {console.log(3);
},0);
console.log(2);

结果:1 2 3

4.3、同步与异步
  • 同步
    • 前一个任务结束在执行下一个
  • 异步
    • 在做这件事的同时,你还可以去处理其他事情

在这里插入图片描述

在这里插入图片描述

  • JS中的异步是通过回调函数实现的
  • 异步任务类型:
    • 普通事件,如:click,resize
    • 资源加载,如:load,error
    • 定时器,包括setTnterval,setTimeout

5、location对象

  • window提供了location属性**用于获取或者设置窗体的url,并且解析url。
5.1、url

统一资源定位符

url语法一般为:

protocol://host[:port]/path/[?query]#fragmenthttp://www.itcast.cn/index.html?name=andy&age=18#link
组成说明
protocol通信协议,常用的http,ftp,maito等
host主机(域名)www.itheima.com
port端口号,可选
path路径由零或者多个’/'符号隔开的字符串
query参数以键值的形式,通过&符号分开
fragment片段#后面内容,常用于描点链接
5.2、location对象属性
location对象属性返回值
location.href获取或者设置整个url
location.host返回主机(域名)www.baidu.com
location.port返回端口号,如果未写就返回空字符串
location.pathname返回路径
location.search返回参数
loacation.hash返回片段,#后面内容常见于链接

重点记住:hrefsearch

5.3、location对象方法
location对象方法返回值
location.assign()和href一样,可以跳转页面(也称为页面重启向页)
location.replace()替换当前页面
location.reload()重新加载页面

6、navigation对象

  • navigator对象包含有关浏览器,他有很多属性
  • 我们常用的是userAgent
if((navigator.userAgent.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 = "";     //电脑}

7、history对象

  • window对象提供了一个history对象,与浏览器历史记录进行交互
history对象方法作用
back()可以后退功能
forward()前进功能
go(参数)前进后退功能,参数如果是1 前进1 ,
<body><a href = "list.hrml">列表</a><button>前进</button><script>var btn = document.querySelector('button');btn.addEventListener('click',function() {history.go(1);})</script>
</body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/11190.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 56.合并区间

思路&#xff1a; 类似于用最少的箭射气球题目&#xff0c;最主要是要处理区间之间是否有重叠&#xff0c;如果无重叠则加入数组&#xff0c;如果有重叠&#xff0c;则需要重新设判断的边界&#xff0c;与下一个区间继续判断。 难点在于 代码用法 需熟练掌握 思想简单&#…

14.UE5爆炸伤害,场景变暗,时间轴

2-16 爆炸伤害&#xff0c;球体监测&#xff0c;场景变暗、时间轴_哔哩哔哩_bilibili 目录 1.UE5的爆炸伤害 ​2.后期盒子实现场景变暗 1.UE5的爆炸伤害 进入流星火雨的发射物蓝图编辑器中 对我们以前的重叠事件进行回顾&#xff0c;并修改使之实现爆炸伤害的效果 这是我们…

现代无线通信接收机架构:超外差、零中频与低中频的比较分析

写在前面&#xff1a;本博客是对三种接收机架构的学习笔记&#xff0c;仅供个人学习记录使用。内容主要是上网查阅的资料&#xff0c;以及个人的一些理解。如有错误的地方请指出&#xff01; 文章目录 一、通信机基本架构1、射频发射级的基本组成及完成功能2、射频接收级的基本…

工业4.0时代下的人工智能新发展

摘要&#xff1a;随着德国工业4.0时代以及中国制造2025的提出&#xff0c;工业智能化的改革的时代正逐渐到来&#xff0c;然而我国整体工业水平仍然处于工业2.0水平。围绕工业4.0中智能工厂、智能生产、智能物流这三大主题&#xff0c;结合国内外研究现状&#xff0c;对人工智能…

[ Linux 命令基础 5 ] Linux 命令详解-网络管理命令

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

计算机课程管理:Spring Boot实现的工程认证解决方案

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足&#xff0c;创建了一个计算机管理基于工程教育认…

【eNSP】企业网络架构链路聚合、数据抓包、远程连接访问实验(二)

一、实验目的 网络分段与VLAN划分&#xff1a; 通过实验了解如何将一个大网络划分为多个小的子网&#xff08;VLAN&#xff09;&#xff0c;以提高网络性能和安全性。 VLAN间路由&#xff1a; 学习如何配置VLAN间的路由&#xff0c;使不同VLAN之间能够通信。 网络设备配置&am…

Ubuntu 的 ROS 2 操作系统安装与测试

引言 机器人操作系统&#xff08;ROS, Robot Operating System&#xff09;是一种广泛应用于机器人开发的开源框架&#xff0c;提供了丰富的库和工具&#xff0c;支持开发者快速构建、控制机器人并实现智能功能。 当前&#xff0c;ROS 2 的最新长期支持版本为 Humble Hawksbil…

软件工程笔记一

目录 软件的概念、特性和分类 软件与程序 软件的特性 软件的分类 软件危机与软件工程 软件危机 如何摆脱软件危机? 软件工程概念的提出 什么是软件工程&#xff1f; 软件工程的若干定义 系统工程的目标 软件工程的基本原理 软件工程的目标 软件的质量特性 软件生存…

CEO代码 (CEO Code)

https://caseinterview.com/wp-content/uploads/2015/10/The-CEO-Code-Rules-by-Victor-Cheng.pdf 源自 Victor Cheng CEO们使用一种特殊的语言。这种语言不是英语、西班牙语、普通话或印地语&#xff0c;而是一种置于我们日常语言之上的元语言。 CEO们很快就能识别出谁能说这…

LVGL实现冒泡事件

在LVGL&#xff08;LittlevGL&#xff09;中&#xff0c;事件冒泡是一个重要的概念&#xff0c;它允许事件从一个对象传递到其父对象&#xff0c;直到找到一个能够处理该事件的对象或者达到顶层对象。以下是如何在LVGL中实现和使用事件冒泡的概述&#xff1a; 事件冒泡的理解 …

深入理解计算机系统-信息的表示和处理

2.1 信息存储 大多数计算机使用8位的块&#xff0c;或者字节&#xff0c;作为最小的可寻址的内存单位&#xff0c;而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组&#xff0c;称为虚拟内存。 内存的每个字节都由一个唯一的数字来表示&#xff0c;称为它的…

JAVA-顺序表ArrayList(实现ArrayList)

1.线性表 线性表 &#xff08; linear list &#xff09; 是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线。…

DCN DCWS-6028神州数码 AC 设备配置笔记

DCN DCWS-6028神州数码 AC 设备配置笔记 一、前期准备 PC 电脑网络配置 目的:使 PC 能够访问 AC 的 web 管理控制台。配置详情:web 管理控制台地址为 192.168.1.10,将 PC 电脑 IP 地址配置在 192.168.1.1 - 192.168.1.254 网段内,如 192.168.1.110,子网掩码 255.255.255.…

树概念及结构

树概念及结构 6.1 树概念及结构6.1.1 树的概念6.1.2 树的术语解读6.1.3 树的表示 6.1 树概念及结构 6.1.1 树的概念 类似八股文一样的东西&#xff0c;需要记一下。 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系…

MySQL主从复制原理

MySQL主从复制是一种异步、基于日志的、单向的数据库复制技术&#xff0c;它通过在主服务器上启用二进制日志&#xff08;binlog&#xff09;并将其发送给一个或多个从服务器&#xff0c;实现了从服务器与主服务器之间的数据同步。以下是MySQL主从复制原理的详细解释&#xff1…

AMD-OLMo:在 AMD Instinct MI250 GPU 上训练的新一代大型语言模型。

AMD-OLMo是一系列10亿参数语言模型&#xff0c;由AMD公司在AMD Instinct MI250 GPU上进行训练&#xff0c;AMD Instinct MI250 GPU是一个功能强大的图形处理器集群&#xff0c;它利用了OLMo这一公司开发的尖端语言模型。AMD 创建 OLMo 是为了突出其 Instinct GPU 在运行 “具有…

Spring Boot框架:构建符合工程认证的计算机课程

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

实现链式结构二叉树

目录 需要实现的操作 链式结构二叉树实现 结点的创建 前序遍历 中序遍历 后序遍历 计算结点个数 计算二叉树的叶子结点个数 计算二叉树第k层结点个数 计算二叉树的深度 查找值为x的结点 销毁 层序遍历 判断是否为完全二叉树 总结 需要实现的操作 //前序遍历 void …

DU模拟器(S5040A Open RAN Studio Player and Capture Appliance)

下行测试过程&#xff0c;由是德科技(https://www.keysight.com/cn/zh/home.html)的DU模拟器&#xff08;S5040A Open RAN Studio Player and Capture Appliance&#xff09;产生标准5G NR下行测试信号&#xff0c;经前传接口发送到小站进行基带处理、中射频、变频后从相控阵天…