学习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能够与浏览器进行丰富的交互,从而实现各种网页效果和功能。以上的内容都是我自己个人的学习成果,或许还有一点遗漏,欢迎大家的指正和在评论区和谐讨论。

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

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

相关文章

力扣-LCP 02.分式化简

题解: class Solution:def fraction(self, cont: List[int]) -> List[int]:# 初始化分子和分母为 0 和 1n, m 0, 1# 从最后一个元素开始遍历 cont 列表for a in cont[::-1]:# 更新分子和分母,分别为 m 和 (m * a n)n, m m, (m * a n)# 返回最终的…

大型网站系统架构演化实例_9.分布式服务

1. 第十阶段:分布式服务 随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难。由于所有应用要和所有数据库系统连接,在数万台服务器规模的网站中,这些连接的数…

计算机网络 -- 多人聊天室

一 程序介绍和核心功能 这是基于 UDP 协议实现的一个网络程序,主要功能是 构建一个多人聊天室,当某个用户发送消息时,其他用户可以立即收到,形成一个群聊。 这个程序由一台服务器和n个客户端组成,服务器扮演了一个接受…

[Kubernetes] etcd的集群基石作用

文章目录 1. 配置存储2. 数据一致性3. 服务发现与协调4. 集群状态中枢5. 集群稳定性 1. 配置存储 etcd作为一个高度可靠的分布式键值存储系统,存储了Kubernetes集群的完整配置和状态数据。集群的元数据,包括节点信息、命名空间、部署、副本集、服务、持…

5.11 mybatis之returnInstanceForEmptyRow作用

文章目录 1. 当returnInstanceForEmptyRowtrue时2 当returnInstanceForEmptyRowfalse时 mybatis的settings配置中有个属性returnInstanceForEmptyRow,该属性新增于mybatis的3.4.2版本,低于此版本不可用。该属性的作用官方解释为:当返回行的所…

使用Python+opencv实现自动扫雷

大家好,相信许多人很早就知道有扫雷这么一款经典的游戏,更是有不少人曾听说过中国雷圣,也是中国扫雷第一、世界综合排名第二的郭蔚嘉的顶顶大名。扫雷作为一款在Windows9x时代就已经诞生的经典游戏,从过去到现在依然都有着它独特的…

汽车4S集团数据分析

派可数据分析--汽车4S集团。 派可数据汽车4S集团数据分析概述。派可数据汽车4S集团分析主题全面涵盖行业内各板块业务分析,具体包括:保险业务分析、客户关系分析、汽车保养情况分析、售后维修主题分析、整车销售分析、整车库存分析、装具销售分析、配件…

dbearver达梦连接

1、新建达梦驱动 新建驱动管理器 点击“数据库”,选择“驱动管理器” 配置 点击“新建”,出现配置界面 类名:dm.jdbc.driver.DmDriver #固定值,不能修改URL模板:jdbc:dm://{host}/DMHR #配置要连接的数据库信息默认…

【VIC水文模型】准备工作:平台软件安装

VIC水文模型所需平台软件安装 1 Arcgis安装2 Cygwin安装(Linux系统)3 Matlab/R/Fortran的安装Notepad 4 VIC模型程序代码获取参考 由于VIC模型的编程语言为C语言,交互方式为控制台输指令,需要在Linux系统上运行。Windows 上使用 …

Https网站接口被黑被恶意调取

背景: 维护的一个网站最近短信接口被黑,发送大量短信。起初以为是在网站内部操作,优化了发送短信前的操作,如添加图形验证码,屏蔽国外IP等。但后续还存在被调取情况,定位排查到是该接口在外部被恶意调取。 …

免费使用ChatGPT 4.0 和 文心一言 4.0

前言 今天给大家分享如何免费使用ChatGPT4.0 和 文心一言 4.0,废话就不多说了,我们直接入正题。 ChatGPT 4.0 先来看看如何免费使用ChatGPT 4.0 进入Coze登录 https://www.coze.com 选择大圣-GPT-4 文心一言 4.0 通过文心智能体平台,就…

Java 笔记 03:Java 基础知识,使用 IDEA 创建 Java 项目、设置注释颜色,以及自动生成 JavaDoc

一、前言 记录时间 [2024-04-21] 系列文章简摘: Java 笔记 01:Java 概述,MarkDown 常用语法整理 Java 笔记 02:Java 开发环境的搭建,IDEA / Notepad / JDK 安装及环境配置,编写第一个 Java 程序 本文讲述了…

OJ:数字三角形(搜索)

🎁个人主页:我们的五年 🔍系列专栏:每日一练 🌷追光的人,终会万丈光芒 🌷1.问题描述: ⛳️题目描述: 示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路…

对接浦发银行支付(六)-- 请求退款接口与查询退款结果接口

一、概述 本文介绍浦发银行支付的请求退款和查询退款结果两个接口,浦发银行的退款流水号是以5901开头。发起退款的时候,浦发银行返回浦发银行退款流水号给我们(这里的我们是指对接浦发银行支付的一方,于浦发银行而言,…

面向对象设计模式之概念

设计模式系列的观点结合了《HeadFirst设计模式》(中文版)以及《设计模式:可复用面向对象软件的基础》两本书的知识,以及Sunny(刘伟)的博客 《HeadFirst设计模式》(中文版): 百度网盘链接:https://pan.baidu.com/s/1osvnUGZZREm8Jb…

「GO基础」变量

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

python-自动化篇-终极工具-用GUI自动控制键盘和鼠标-pyautogui-键盘

文章目录 键盘键盘——记忆宫殿入门——通过键盘发送一个字符串——typewrite()常规——键名——typewrite()常规——按下键盘——keyDown()常规——释放键盘——keyUp()升级——热键组合——hotkey() 键盘 pyautogui也有一些函数向计算机发送虚拟按键,让你能够填充…

【介绍下WebStorm开发插件】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

深入了解PBKDF2:密码学中的关键推导函数

title: 深入了解PBKDF2:密码学中的关键推导函数 date: 2024/4/20 20:37:35 updated: 2024/4/20 20:37:35 tags: 密码学对称加密哈希函数KDFPBKDF2安全密钥派生 第一章:密码学基础 对称加密和哈希函数 对称加密:对称加密是一种加密技术&…

[阅读笔记15][Orca]Progressive Learning from Complex Explanation Traces of GPT-4

接下来是微软的Orca这篇论文,23年6月挂到了arxiv上。 目前利用大模型输出来训练小模型的研究都是在模仿,它们倾向于学习大模型的风格而不是它们的推理过程,这导致这些小模型的质量不高。Orca是一个有13B参数的小模型,它可以学习到…