学习BOM

目录

前言:

1. BOM组成:

1.1Window 对象:

1.1Location 对象:

1.2Navigator 对象:

1.2.1 navigator 对象包含了关于浏览器的信息包括:

1.3History 对象:

1.4常用的history的方法和属性:

1.4Document 对象:

1.5Screen 对象:

1.6console 对象:

1.6.1常用的console的用法:

1.6.1.1console.log():

1.6.1.2console.assert(condition, message):

1.6.1.3console.clear():

1.6.1​​​​​​​.4console.count(label):

1.6.1​​​​​​​.5console.countReset(label):

1.6.1​​​​​​​.6console.warn(message):

1.6.1​​​​​​​.7console.error(message):

1.6.1​​​​​​​.8console.dir(object):

1.6.1​​​​​​​.9console.group(title) 和 console.groupEnd():

1.6.1​​​​​​​.10.console.time(label) 和 console.timeEnd(label):

2.定时器详解:

2.1setTimeout:

2.2setInterval:

2.3清除定时器:

2.4注意事项:

2.5BOM的其他常用功能

2.5.1window.location:

2.5.2window.history:

2.5.3window.navigator:

2.5.4window.document:

2.5.5window.screen:

3.浏览器窗口及与窗口交互的元素:

3.1浏览器的尺寸数据和方法:

3.1.1.innerWidth 和 innerHeight:

3.1.2.screenLeft 和 screenTop(或 screenX 和 screenY):

3.1.3.outerHeight 和 outerWidth:

3.1.4.scrollX 和 scrollY(或 pageXOffset 和 pageYOffset):

3.2名词解释:

3.2.1screen:

3.2.2client:

3.2.3offset:

3.2.4scroll:

3.2.5inner:

3.3.JavaScript中的浏览器交互和用户输入相关:

3.3.1alert(str):

3.3.2confirm(str):

3.3.3prompt(message, placeholder):

3.3.4close():

3.3.5blur():

3.3.6scrollBy(x, y):

3.3.7scrollTo(x, y):

3.4location位置:

3.4.1host:

3.4.2hostname:

3.4.3port:

3.4.4pathname:

3.4.5protocol:

3.4.6search:

3.4.7href:

3.4.8window.location 还有一些方法,允许您进行页面导航,

3.4.8.1assign(URL):

3.4.8.2replace(URL):

3.4.8.3reload(forceReload):

 结语:


前言:

今天我们开始学习了BOM,在这之前我们已经学习了关于JavaScript的DOM的内容了什么事BOM呢?

BOM即Browser Object Model(浏览器对象模型),提供了独立于任何特定文档的对象,用于浏览器窗口和脚本之间进行交互。通过BOM,开发者可以操作浏览器窗口及与窗口交互的元素,比如浏览器窗口的大小、导航、定位、历史记录等。

1. BOM组成:

主要由以下几部分:
 

1.1Window 对象

代表整个浏览器窗口,是BOM的主要对象,所有全局JavaScript对象、函数和变量自动成为window对象的成员。Window对象包含了许多属性和方法,可以用于控制浏览器窗口和窗口中的内容:

  • 代表浏览器窗口,是BOM的核心对象。
  • 包含了浏览器窗口的尺寸、位置等信息,以及操作浏览器窗口的方法。
  • 可以绑定事件,因为它继承了EventTarget的原型。
  • window.name 属性可以在页面跳转时保持不变,可用于跨页面通信。

1.1Location 对象

包含有关当前URL的信息,并提供了一些方法来进行URL的操作,如跳转、刷新等。

  • 描述当前文档在网络中的位置信息。
  • 提供了主机名、端口、路径、协议等属性,方便开发者了解当前页面的URL结构。
  • 通过修改location.href可以导航到新的页面。

1.2Navigator 对象

包含了有关浏览器的信息,比如浏览器的名称、版本、操作系统等。

  • 包含了关于浏览器的信息,如浏览器名称、版本、操作系统等。
  • userAgent 属性常用于服务器端的用户代理检测,以确定客户端的浏览器类型和版本。

1.2.1 navigator 对象包含了关于浏览器的信息包括:

  • appVersion: 返回由浏览器声明的版本信息。这个字符串通常包含了浏览器的名称、版本号和渲染引擎等信息。
  • appCodeName: 通常返回浏览器的代码名称,对于大多数现代浏览器,这个值通常是 "Mozilla",尽管这个值的历史意义已经淡化,现在主要用于兼容性检测。
  • userAgent: 返回一个字符串,表示用户代理头的值。这个字符串通常包含了浏览器的名称、版本、渲染引擎、操作系统以及是否包含某些特定的浏览器功能等信息。这个属性常被用于服务器端的用户代理检测,以确定如何为不同的浏览器或设备提供不同的内容或格式。

1.3History 对象

让你可以与浏览器的历史记录进行交互,比如前进、后退等。

  • 提供了与浏览器历史记录相关的功能。
  • 可以使用back()forward(), 和 go() 方法进行页面跳转。
  • history.length 属性表示历史记录中的页面数量。

1.4常用的history的方法和属性:

  • length: 表示浏览器历史列表中的 URL 数量。这个数量包含了当前加载的页面。
  • back(): 相当于点击浏览器的“后退”按钮,导航到历史列表中的上一个页面。
  • forward(): 相当于点击浏览器的“前进”按钮,导航到历史列表中的下一个页面。请注意,如果没有下一个页面,这个方法将不会有任何效果。
  • go(n): 导航到历史列表中的一个指定页面。参数 n 是一个整数,表示相对于当前页面的位置。例如,history.go(-1) 与 history.back() 效果相同,而 history.go(1) 与 history.forward() 效果相同。

1.4Document 对象

虽然Document对象属于DOM而非BOM,但是通过window.document可以访问到它,它是DOM树的根节点,代表了加载在窗口中的网页内容。

1.5Screen 对象

提供了客户端屏幕的信息,如屏幕的宽度和高度等。

1.6console 对象

  • 提供了浏览器控制台的输出和控制功能。
  • 常用于调试和开发过程中的信息输出。
  • 包含了多种方法,如log()warn()error()time()timeEnd() 等,用于不同类型的输出和性能测量。

1.6.1常用的console的用法:
 

1.6.1.1console.log():

在控制台输出信息。这是开发者最常用的方法之一,用于打印变量、对象或其他任何数据类型的值。

1.6.1.2console.assert(condition, message):

如果conditionfalse,则在控制台输出指定的message。这通常用于在开发过程中进行断言检查。

1.6.1​​​​​​​.3console.clear():

清除控制台的内容。这有助于在调试过程中清理屏幕,以便更清晰地查看后续的输出。

1.6.1​​​​​​​.4console.count(label):

对以label标记的特定代码段的调用次数进行计数。每次调用此方法时,计数会增加,并显示在控制台上。

1.6.1​​​​​​​.5console.countReset(label):

重置通过console.count()方法使用相同label的计数器。这将计数器的值设置回0。

1.6.1​​​​​​​.6console.warn(message):

在控制台输出警告信息。这通常用于指示某些可能的问题或异常情况,但不会中断程序的执行。

1.6.1​​​​​​​.7console.error(message):

在控制台输出错误信息。虽然这不会停止脚本的执行,但它通常用于指示发生了严重的错误或异常情况。

1.6.1​​​​​​​.8console.dir(object):

以类似于文件系统目录列表的方式显示对象的所有属性和方法。这对于查看复杂对象的结构和内容非常有用。

1.6.1​​​​​​​.9console.group(title) 和 console.groupEnd():

这两个方法用于将控制台输出分组。console.group()开始一个新组,并可以为其提供一个可选的title。在该组内的所有后续控制台输出都将被缩进,直到调用console.groupEnd()结束该组。

1.6.1​​​​​​​.10.console.time(label) 和 console.timeEnd(label):

这两个方法用于测量代码段的执行时间。console.time()开始计时,并接受一个label作为参数。console.timeEnd()停止计时,并在控制台显示经过的时间。这两个方法通常一起使用,以评估特定代码块的性能。

例子:

// Window 对象示例:弹出警告框  
window.alert("Hello, BOM!");  
  
// Location 对象示例:跳转到新页面  
window.location.href = "https://www.example.com";  
  
// Navigator 对象示例:检测用户的浏览器类型  
var browserName = navigator.appName;  
console.log(browserName);  
  
// History 对象示例:后退到上一个页面  
window.history.back();  
  
// Screen 对象示例:获取屏幕宽度和高度  
var screenWidth = window.screen.width;  
var screenHeight = window.screen.height;  
console.log("Screen Width: " + screenWidth + ", Screen Height: " + screenHeight);

2.定时器详解:


定时器在JavaScript中是一个非常重要的功能,它允许你在指定的时间后执行某个函数或代码块,或者周期性地执行某个函数。JavaScript提供了两个主要的定时器函数:setTimeout 和 setInterval

2.1setTimeout:

setTimeout 函数用于在指定的毫秒数后执行一个函数。它返回一个定时器ID,这个ID可以用于在之后清除定时器。

// 设置一个定时器,在2000毫秒(2秒)后执行  
var timeoutId = setTimeout(function() {  
    console.log('这个消息将在2秒后打印出来');  
}, 2000);  
  
// 如果需要取消这个定时器,可以使用clearTimeout函数  
// clearTimeout(timeoutId);

2.2setInterval:

setInterval 函数用于周期性地执行一个函数,间隔时间是指定的毫秒数。它也返回一个定时器ID。

// 设置一个周期性定时器,每隔2000毫秒(2秒)执行一次  
var intervalId = setInterval(function() {  
    console.log('这个消息将每隔2秒打印一次');  
}, 2000);  
  
// 如果需要停止这个周期性定时器,可以使用clearInterval函数  
// clearInterval(intervalId);

2.3清除定时器:

当你不再需要定时器继续执行时,可以使用 clearTimeout 或 clearInterval 函数来清除它,这样可以防止内存泄漏和不必要的计算。

// 假设你已经有了一个定时器ID:timeoutId 或 intervalId  
clearTimeout(timeoutId); // 清除setTimeout设置的定时器  
clearInterval(intervalId); // 清除setInterval设置的定时器

2.4注意事项:

  • 定时器ID是唯一的,并且可以被用于清除特定的定时器。
  • 如果设置的定时器回调函数执行时间较长,可能会影响定时器的准确性。
  • JavaScript的定时器并不是精确的,它们受到页面的渲染、其他代码的运行和许多其他因素的影响。因此,定时器应该用于非精确的时间操作。
  • 在使用定时器时要小心,避免创建大量的定时器,这可能会导致性能问题。

2.5BOM的其他常用功能

除了定时器功能外,BOM还提供了许多其他与浏览器交互的功能,例如:

2.5.1window.location

用于获取或设置当前窗口的URL地址,并可以实现页面的刷新和跳转。window.location 对象用于获取或设置当前窗口的URL,并可以解析URL的不同部分,如协议、主机名、路径等。此外,它还提供了一些方法用于页面的跳转和刷新。

// 获取当前页面的完整URL  
var currentURL = window.location.href;  
  
// 设置新的URL,导致浏览器跳转到该地址  
window.location.href = 'https://www.example.com';  
  
// 重新加载当前页面  
window.location.reload();

2.5.2window.history

提供了与浏览器历史记录相关的功能,如前进、后退等。window.history 对象提供了与浏览器历史记录交互的功能。可以使用它来实现页面的前进、后退,以及添加新的历史记录点。

// 后退到前一个页面  
window.history.back();  
  
// 前进到下一个页面  
window.history.forward();  
  
// 跳转到历史记录中的某个点(如果可用)  
window.history.go(-2); // 后退两步

2.5.3window.navigator

包含了关于浏览器的信息。window.navigator 对象包含了关于浏览器的信息,比如浏览器的名称、版本、操作系统、是否启用了Cookie等。

// 获取浏览器名称  
var browserName = navigator.appName;  
  
// 获取浏览器版本  
var browserVersion = navigator.appVersion;  
  
// 检查用户代理字符串  
var userAgent = navigator.userAgent;  
  
// 检查是否启用了Cookie  
var cookiesEnabled = navigator.cookieEnabled;

2.5.4window.document

提供了对DOM的访问。window.document 主要是DOM的一部分,但它是通过BOM的window对象来访问的。document对象代表了加载在浏览器窗口中的网页内容,并提供了许多方法和属性来操作和查询DOM。

// 获取文档的标题  
var title = document.title;  
  
// 修改文档的标题  
document.title = 'New Page Title';  
  
// 查询DOM元素  
var element = document.getElementById('myElement');

2.5.5window.screen

提供了关于客户端屏幕的信息。window.screen 对象提供了关于客户端屏幕的信息,如屏幕的宽度、高度、可用宽度和高度等。

// 获取屏幕的宽度和高度  
var screenWidth = screen.width;  
var screenHeight = screen.height;  
  
// 获取屏幕的可用宽度和高度(减去任务栏、Dock栏等占用的空间)  
var availWidth = screen.availWidth;  
var availHeight = screen.availHeight;

3.浏览器窗口及与窗口交互的元素:

3.1浏览器的尺寸数据和方法:

3.1.1.innerWidth 和 innerHeight

  • 这两个属性分别表示浏览器视口(viewport)的宽度和高度,包括滚动条,但不包括浏览器的工具栏、标签页等界面元素。
  • 这些尺寸是用来描述网页内容区域的可用空间。

3.1.2.screenLeft 和 screenTop(或 screenX 和 screenY):

  • 这两个属性(screenLeft/screenX 和 screenTop/screenY)提供浏览器窗口左上角在屏幕上的位置。
  • 不同的浏览器可能会实现不同的属性名称,但功能上是等价的。

3.1.3.outerHeight 和 outerWidth

  • 这两个属性表示浏览器窗口的整体尺寸,包括所有界面元素,如书签栏、地址栏、状态栏等。
  • 这些尺寸描述了浏览器窗口在屏幕上占据的总空间。

3.1.4.scrollX 和 scrollY(或 pageXOffset 和 pageYOffset):

  • 这两个属性表示当前页面在水平方向和垂直方向上的滚动量。
  • 当用户滚动页面时,这些值会发生变化,反映了页面的滚动位置。

3.2名词解释:

3.2.1screen

  • “屏幕”通常指的是计算机显示器或移动设备的整个显示区域。
  • 在Web开发中,screen 对象提供了访问客户端屏幕信息的接口,比如屏幕的宽度和高度(screen.width 和 screen.height),这些信息与浏览器窗口的大小或位置无关。

3.2.2client

  • “当前选中区域元素”在这个上下文中可能有些模糊,但“client”通常指的是浏览器窗口的视口(viewport),即不包括工具栏、滚动条等浏览器界面元素的显示区域。
  • 在JavaScript中,clientWidth 和 clientHeight 属性通常用于获取一个元素(包括浏览器窗口本身,通过document.documentElementwindow对象)的内部宽度和高度,不包括边框、滚动条等。

3.2.3offset

  • “偏移”指的是一个元素相对于其定位父元素(或相对于整个文档,如果没有定位的父元素)的位置。
  • 在JavaScript中,可以通过元素的offsetLeftoffsetTop属性来获取这个偏移量。

3.2.4scroll

  • “卷轴、卷动”在这里指的是与页面滚动相关的属性和方法。
  • 当页面内容超出视口大小时,浏览器会显示滚动条以允许用户滚动查看隐藏的内容。
  • JavaScript中的scrollTopscrollLeft属性表示当前滚动的位置,而scrollWidthscrollHeight则表示整个内容的宽度和高度(包括不可见的部分)。

3.2.5inner

  • “内部”指的是一个元素的内部尺寸,不包括边框、外边距和内边距(但可能包括滚动条,这取决于具体的属性和浏览器)。
  • 例如,在JavaScript中,innerWidthinnerHeight(如果是获取浏览器窗口的尺寸)通常包括滚动条的宽度或高度。而对于HTML元素,clientWidthclientHeight则不包括滚动条,它们表示元素内容区域的宽度和高度(包括内边距,但不包括边框、外边距和滚动条)。

3.3.JavaScript中的浏览器交互和用户输入相关:

3.3.1alert(str):

  • 这个方法用于在浏览器中显示一个警告对话框,其中str是要显示的消息字符串。
  • 用户点击确定按钮后,对话框会关闭,且没有返回值。

3.3.2confirm(str):

  • 这个方法用于在浏览器中显示一个确认对话框,其中str是要显示的消息字符串。
  • 用户点击确定按钮,方法返回true;点击取消按钮,方法返回false
  • 这个方法常用于在执行某项操作前征求用户的确认。

3.3.3prompt(message, placeholder):

  • 这个方法用于在浏览器中显示一个提示对话框,要求用户输入信息。
  • message是显示在对话框中的提示消息,而placeholder是对话框中文本输入框的默认文本(不是所有浏览器都支持placeholder参数)。
  • 用户输入的信息将作为这个方法的返回值。如果用户点击了取消或没有输入任何内容就关闭了对话框,则返回null

3.3.4close():

  • 这个方法通常用于关闭一个由脚本打开的窗口。如果是在主浏览器窗口上调用,可能不会有任何效果,因为这通常取决于浏览器的安全设置。
  • 注意:现代浏览器可能会限制或阻止脚本关闭非由脚本打开的窗口。

3.3.5blur():

  • 这个方法用于移除元素或窗口的焦点。对于窗口来说,调用blur()会使窗口失去焦点。
  • 在HTML元素上使用blur()方法会使该元素失去焦点。

3.3.6scrollBy(x, y):

  • 这个方法用于滚动窗口或元素的内容。xy参数分别表示在水平和垂直方向上滚动的像素量。
  • 正值表示向下或向右滚动,负值表示向上或向左滚动。

3.3.7scrollTo(x, y):

  • 这个方法也用于滚动窗口或元素的内容,但与scrollBy不同的是,它滚动到指定的位置,而不是滚动指定的量。
  • xy参数表示滚动到的水平和垂直坐标。

3.4location位置:

3.4.1host

包含主机名和端口号(如果存在)。例如,example.com:8080,其中example.com是主机名,8080是端口号。如果端口是默认的(例如,HTTP 的 80 或 HTTPS 的 443),则通常不显示端口号。

3.4.2hostname

仅包含主机名,不包括端口号。继续上面的例子,这将是example.com

3.4.3port

URL 中指定的端口号。如果未指定端口,或者使用的是默认端口(HTTP 的 80,HTTPS 的 443),则此属性返回空字符串。

3.4.4pathname

URL 的路径部分,从根目录/开始,到查询字符串(如果有)开始之前结束。例如,/pages/index.html

3.4.5protocol

页面使用的协议,通常是http:https:。注意,字符串末尾包含冒号。

3.4.6search

URL 的查询字符串部分,从问号?开始。例如,?key=value。这部分通常用于 GET 请求,传递参数给服务器。

3.4.7href

完整的 URL。这是上述所有部分的组合,形成了完整的网址。

3.4.8window.location 还有一些方法,允许您进行页面导航,

例如:

3.4.8.1assign(URL)

加载新的页面,并将当前页面添加到历史记录中。这与直接设置 location.href 的效果相同。

3.4.8.2replace(URL)

用新的页面替换当前页面,不会在历史记录中添加新条目。这意味着用户不能用“后退”按钮返回到原始页面。

3.4.8.3reload(forceReload)

重新加载当前页面。如果 forceReload 设置为 true,则无论当前文档是否在缓存中,都会强制重新加载页面。如果设置为 false 或者不设置,浏览器可能会从缓存中加载页面。

 结语:

今天我们学习了关于BOM的内容,BOM对象和功能使得JavaScript能够与浏览器进行丰富的交互,从而实现各种网页效果和功能。以上的内容都是我自己个人的学习成果,或许还有一点遗漏,欢迎大家的指正和在评论区和谐讨论。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手写spring IOC底层源码来模拟spring如何利用多级缓存解决循环依赖的问题

在文章开始之前,先来看一张spring IOC加载过程的脑图吧 Spring IOC的加载过程 首先,当我们去new了一个applicationContext,它底层呢就会把我们配置的bean进行扫描,然后创建成一个一个的beanDefinition放在我们的beanDefinitionMap中,此时就有了一切创造bean的原料信…

智慧园区解决方案一站式资料大全:标准规范顶层设计指南、供应商整体解决方案及售前PPT、标准白皮书、全国前50智慧园区集成商方案等全套600份,一次性打包下载

关键词:智慧园区解决方案,智慧园区整体解决方案,智慧园区建设总体方案设计,智慧园区综合管理系统,智慧产业园区解决方案,智慧产业园区规划方案,智慧园区建设规划方案,智慧工业园区建…

【数据结构1-基本概念和术语】

这里写自定义目录标题 0.数据,数据元素,数据项,数据对项,数据结构,逻辑结构,存储结构1.结构1.1逻辑结构1.2存储结构1.2.1 顺序结构1.2.2链式结构 1.3数据结构1.3.1基本数据类型1.3.2抽象数据类型1.3.2.1一个…

基于ssm幼儿资源互助共享平台的设计论文

目 录 摘 要 I Abstract II 第1章 前 言 2 1.1 研究背景 3 1.2 研究现状 3 1.3 系统开发目标 3 第2章 系统开发环境 5 2.1 SSM框架 5 2.2 JAVA简介 6 2.3 ECLIPSE 开发环境 7 2.4 Tomcat服务器 7 2.5 MySQL数据库 7 第3章 需求分析 9 3.1 需求分析 9 3.2 系统可行性分析 9 3.3…

ICV:《中美量子产业融资比较分析》

近日,全球前沿科技咨询公司ICV发布了A Comparative Analysis of Quantum Industry Financing in the U.S and China(美国和中国量子产业融资比较分析)报告。该报告旨在对中美两国在量子技术领域的投融资情况进行比较分析,探讨其差…

服务器数据恢复—xfs文件系统节点、目录项丢失的数据恢复案例

服务器数据恢复环境: EMC某型号存储,该存储内有一组由12块磁盘组建的raid5阵列,划分了两个lun。 服务器故障: 管理员为服务器重装操作系统后,发现服务器的磁盘分区发生改变,原来的sdc3分区丢失。由于该分区…

目标检测算法——YOLOV9——算法详解

一、主要贡献 深度网络输入数据在逐层进行特征提取和空间变换时,会丢失大量的信息。针对 信息丢失问题,研究问题如下: 1)从可逆功能的角度对现有深度神经网络架构进行了理论分析,解释了许多过去难以解释的现象&#xf…

绝地求生:PCL大名单公布,艾伦格三巨头惨遭拆散

就在4.16号PCL官博公布了春季赛的参赛大名单,此次比赛不再像以前一样分为艾伦格、米拉玛和维寒迪三组,而是重新打乱分成了A、B、C三组。 具体名单如下 不仅多了很多新战队,还有一些老家伙也回到了赛场上,比如四大名捕的TSG。

机器学习和深度学习--李宏毅(笔记与个人理解)Day17

Day 17Convolutional Neyral Network (CNN) 卷积神经网络一般都用在image 上面比较多一些,所以课程的例子大多数也都是image Image Classification the same size how about for pc? 这里对于tensor 张量这个概念,我还是比较奇怪,在我认为一…

算法思想总结:链表

一、链表的常见技巧总结 二、两数相加 . - 力扣(LeetCode) class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点,方便尾插List…

网工基础协议——TCP/UDP协议

TCP和UDP的不同点: TCP(Transmission Control Protocol,传输控制协议); UDP(User Data Protocol,用户数据报协议); TCP:传输控制协议,面向连接可靠的协议,只能适用于单播通信&…

【教程】一个比较良心的C++代码混淆器

这是一个比较良心的C代码混淆器,用于信息竞赛训练和保护代码免受抄袭。本文将介绍这个混淆器的使用方法、混淆效果和已知的一些bug。同时,我们也会给出一些示例来演示混淆器的具体操作。 引言 在信息竞赛训练和实际开发中,保护代码的安全性和…

闲不住,手写一个数据库文档生成工具

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 逛博客的时候,发现了一个很有意思的文章:数据库表结构导…

JL-32 土壤速测仪 手持便携可移动 多要素参数可选配

产品概述 土壤速测仪是一款携带方便,操作简单,集采集与存储于一体的可移动式观测仪器。由手持式速测主机、土壤类传感器、USB数据线、电源适配器、便携式手提箱等部分组成。速测仪主机可通过集线器接入不同类型的传感器,互不影响精度&#x…

【二分查找】Leetcode 74. 搜索二维矩阵【中等】

搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则&#xff0c…

记录Python链接mysql数据的增删改查方法

一、添加方法 db pymysql.connect(hostlocalhost,userroot,password123456,dbpython) cursor db.cursor() sql """insert into EMPLOYEEVALUES(3,张,天爱,35,F,8000) """ try:cursor.execute(sql)db.commit() #提交后,数据才会变 …

Springboot+Vue项目-基于Java+MySQL的网上超市系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

Jackson 2.x 系列【28】Spring Boot 集成之 Long 精度损失

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 问题场景2. 原因分析3. 解决方案4. 案例演示4.…

Python 物联网入门指南(七)

原文:zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06 译者:飞龙 协议:CC BY-NC-SA 4.0 第二十四章:基本开关 到目前为止一定是一段史诗般的旅程!回想一下你开始阅读这本书的时候,你是否曾想象…

v-for中涉及的key

一、为什么要用key? key可以标识列表中每个元素的唯一性,方便Vue高效地更新虚拟DOM;key主要用于dom diff算法,diff算法是同级比较,比较当前标签上的key和标签名,如果都一样,就只移动元素&#…