JavaScript之BOM(上)

news2024/11/25 12:50:20

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>

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

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

相关文章

Facebook速推帖子和Facebook广告有什么区别

Facebook速推帖子和Facebook广告是在Facebook平台上推广内容的两种不同方式。虽然它们都可以帮助我们增加品牌曝光和吸引目标受众&#xff0c;但它们在运作方式和效果上有一些区别。让我们来详细了解一下它们之间的差异。 1.内容形式和展示方式&#xff1a; Facebook速推帖子&…

基于北斗+LoRa的落水报警定位方案一 -实现无人区,弱信号地区人员 位置安全监控

人员安全一直是企业管理的重中之重。无人区工地是一个安全事故多发的地方&#xff0c;在施工环境复杂且危险的情况下&#xff0c;工地人员位置监控成为管理工作中的一个难点&#xff0c;一直以来采用粗放的方式&#xff0c;现有的工地项目存在施工人员实时督查难等问题&#xf…

【问题记录】postgreSQL使用默认密码导致kdevtmpfsi挖矿病毒注入

起因 postgreSQL我做错了这几件事情 开启了全部IP登陆权限postgreSQL用的是默认用户名和密码用户postgres也没有设置密码&#xff0c;直接用su - postgres就能登陆 不知道是什么原理&#xff0c;反正服务器被侵入&#xff0c;并且注入了病毒文件 1. 基本信息排查 linux服务器…

大麦链接源码 大麦一键生成订单页面

8.4最新版源码 更新了大麦模版链接 更新了大麦订单页面一键生成

《Web安全基础》01. 基础知识

基础 1&#xff1a;概念名词1.1&#xff1a;域名1.2&#xff1a;DNS1.3&#xff1a;网站开发语言1.4&#xff1a;后门1.5&#xff1a;Web1.6&#xff1a;Web 相关安全漏洞 2&#xff1a;数据包2.1&#xff1a;HTTP2.2&#xff1a;HTTPS2.3&#xff1a;请求数据包2.3.1&#xff…

Linux Centos7 jar包方式安装Jenkins服务

1、本文是在VM虚拟机下安装的Centos7&#xff0c;这一步不赘述&#xff0c;有很多教程。 2、配置好静态IP&#xff0c;可参考Linux配置静态IP地址_cylemon的博客-CSDN博客 3、本文是通过XShell连接linux来操作linux系统的。配置JDK1.8及以上环境。先查看一下当前环境是否已存…

三、JavaWeb从入门到熟练

一、JavaWeb概述 Java Web&#xff0c;是用Java技术来解决相关web互联网领域的技术栈。web包括&#xff1a;web服务端和web客户端两部分。Java在客户端的应用有Java Applet&#xff0c;不过使用得很少&#xff0c;Java在服务器端的应用非常的丰富&#xff0c;比如Servlet&…

chatgpt赋能python:Python做聊天程序:打造智能交流

Python 做聊天程序&#xff1a;打造智能交流 Python 是一种易于学习、灵活性强、最近几年得到广泛应用的编程语言。在当今数字化时代&#xff0c;即便是日常生活中我们都需要与人交流&#xff0c;但人们社交媒体的繁荣已经印证了人们对在线交流工具的需求。以下将对 Python 如…

澳洲学生用ChatGPT代写?澳洲多所高校使用全新反击工具检测

朋友们听句劝 ChatGPT可太危险了 ChatGPT有多火&#xff1f;据2月1日瑞银发布的一项研究报告显示&#xff0c;仅仅发布两个月&#xff0c;ChatGPT月活跃用户已达1亿&#xff0c;这是历史上增长速度最快的应用。要知道达成1亿用户的时间&#xff0c;Instagram用了2.5年&#xf…

【013】C++数组之一维数值数组和二维数值数组

一维数值数组和二维数值数组 引言一、一维数值数组1.1、概念1.2、一维数值数组的定义1.3、一维数值数组的初始化1.4、一维数值数组的元素操作1.5、使用示例 二、二维数值数组2.1、概述2.2、二维数值数组的初始化2.3、二维数值数组的元素操作2.4、使用示例 总结 引言 &#x1f4…

​LeetCode解法汇总1091. 二进制矩阵中的最短路径

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 给你一个 n x n 的二进制矩阵 grid 中&#xff0c;返回矩阵中最短 畅通路径 的长…

修改优美移动端中间的老师的轮播图

副标题在高级内容那&#xff0c;如果缩略图上传不上去。那就是改一下图片名字&#xff0c;多刷新几次试试

Java程序设计入门教程--整数类型

举例 int x123; //指定变量x为int型&#xff0c;且赋初值为123 byte b8; //指定变量b为byte型&#xff0c;且赋初值为8 short s10; //指定变量s为short型&#xff0c;且赋初值为10 long y123L,z123l; //指定变量y,z为long型&#xff0c;且分别赋初值为123 示例代…

公文写作素材:为人处世类过渡句50例

1.身处逆境&#xff0c;敢于亮剑&#xff0c;坚毅前行&#xff0c;方能逆势突围&#xff1b;面对困难&#xff0c;坚定信心&#xff0c;敢拼敢闯&#xff0c;定能笑到最后。 2.没有海纳百川的胸怀&#xff0c;怎能容得下不同性格的人&#xff1b;没有从善如流的雅量&#xff0…

Python中处理无效数据的详细教程(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

云原生之深入解析Kubernetes的网络模型

一、前言 Kubernetes 是为运行分布式集群而建立的&#xff0c;分布式系统的本质使得网络成为 Kubernetes 的核心和必要组成部分&#xff0c;了解 Kubernetes 网络模型可以使你能够正确运行、监控和排查应用程序故障。网络所涉及的内容很多&#xff0c;拥有许多成熟的技术。对于…

chatgpt赋能python:Python做GUI:介绍与优化SEO

Python做GUI&#xff1a;介绍与优化SEO Python是一种受欢迎的编程语言&#xff0c;尤其是在数据分析和开发领域。但是&#xff0c;Python也可以用于GUI&#xff08;图形用户界面&#xff09;应用程序的开发。在本文中&#xff0c;我们将介绍Python GUI开发的基础知识&#xff…

滤镜美颜sdk的实现方式和工作流程:从技术层面了解美颜算法

众所周知&#xff0c;实现美颜功能的核心技术之一就是滤镜美颜sdk。在本文中&#xff0c;我们将从技术层面来探讨滤镜美颜sdk的实现方式和工作流程&#xff0c;帮助读者更深入了解美颜算法。 一、美颜算法的基本原理 美颜算法的基本原理是通过图像处理技术&#xff0c;对人物…

第十八章_Redis缓存预热+缓存雪崩+缓存击穿+缓存穿透

缓存预热 缓存预热就是系统启动前&#xff0c;提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候&#xff0c;先查询数据库&#xff0c;然后再将数据缓存的问题&#xff01;用户直接查询事先被预热的缓存数据。 可以通过PostConstruct初始化白名单数据 缓存雪崩 …

23种设计模式之命令模式(Command Pattern)

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章将23种设计模式中的命令模式&#xff0c;此篇文章为一天学习一个设计模式系列文章&#xff0c;后面会分享其他模式知识。 如果文章有什么需要改进的地方还请大佬不…