前端面试题之HTML篇
1.src和href的区别
src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
src可用于img、input、style、script、iframe---同步加载执行
href可用于link、a---异步
1.用途不同 | src 用于引入外部资源,通常是图像、视频、JavaScript 文件等,它会加载并嵌入资源到页面中。 href 用于指定超链接的目标地址,通常是网页的 URL 地址,用于页面间的跳转或者外部资源的引用。 |
2.加载行为不同 | src 会阻塞后续的页面渲染,直到资源加载完成。例如,浏览器在遇到script或img标签时,会等待对应资源加载完毕再继续执行后续操作。 href 不会阻塞页面渲染,它仅仅是提供了跳转的地址。当浏览器解析到带有 href 的链接时,它会异步加载目标资源,并在用户点击时进行跳转。 |
3.影响范围不同 | src 影响的是元素本身,指定的资源会直接嵌入到该元素中。 href 影响的是页面间的跳转或外部资源的加载,点击链接后,页面或资源会加载到新的位置。 |
2.对HTML语义化的理解
语义化:根据内容的结构化(内容语义化),选择合适的标签(代码语义化)。
具体来讲就是---在编写HTML代码时,使用具有明确含义的标签来构建网页内容的过程。这些标签不仅描述了内容的结构,还传达了内容的含义,从而使得网页内容更加清晰、易于理解和维护。
优点:SEO(搜索引擎)优化---搜索引擎可以通过语义化的标签更好地理解网页内容,从而提高网站在搜索引擎中的排名。
可访问性---语义化标签使得网页在没有CSS的情况下也能呈现出良好的结构,便于辅助技术(如屏幕阅读器)为残障人士提供更好的访问体验。
代码可读性和可维护性---使用语义化标签可以使代码更加清晰和有组织,便于团队协作和代码维护。
常见的语义化标签 | |
<header></header> | 头部 |
<nav></nav> | 导航栏 |
<section></section> | 区块(有语义化的div) |
<main></main> | 主要区域 |
<article></article> | 主要内容 |
<aside></aside> | 侧边栏 |
<footer></footer> | 底部 |
3.DOCTYPE(文档类型)的作用
DOCTYPE是HTML5中一种标准通用标记语言的文档类型声明,它的目的是告诉浏览器(解析器)应该以什么样(html或xhtml)的文档类型定义来解析文档,不同的渲染模式会影响浏览器对 CSS 代码甚⾄ JavaScript 脚本的解析。它必须声明在HTML⽂档的第⼀⾏。
浏览器渲染页面的两种模式(可通过document.compatMode获取):1.CSS1Compat:标准模式,也是默认模式,浏览器使用W3C的标准解析渲染页面。在标准模式中,浏览器以其支持的最高标准呈现页面。
2.BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。在怪异模式中,页面以一种比较宽松的向后兼容的方式显示。
4.文档声明(DOCTYPE)和<!DOCTYPE HTML>有何作用?严格模式与混杂模式如何区分?它们有何意义?
文档声明(DOCTYPE)的作用:文档声明是为了告诉浏览器,当前
HTML
文档使用什么版本的HTML
来写的,这样浏览器才能按照声明的版本来正确的解析。<!DOCTYPE HTML>的作用:
<!
DOCTYPE HTML>
的作用就是让浏览器进入标准模式,使用最新的HTML5
标准来解析渲染页面;如果不写,浏览器就会进入混杂模式,我们需要避免此类情况发生。严格模式与混杂模式的区分:
- 严格模式: 又称为标准模式,指浏览器按照
W3C
标准解析代码;- 混杂模式: 又称怪异模式、兼容模式,是指浏览器用自己的方式解析代码。混杂模式通常模拟老式浏览器的行为,以防止老站点无法工作;
区分:网页中的
DTD(文档类型定义)
,直接影响到使用的是严格模式还是混杂模式,可以说DTD
的使用与这两种方式的区别息息相关。
- 如果文档包含严格的
DOCTYPE
,那么它一般以严格模式呈现(严格 DTD ——严格模式);- 包含过渡
DTD
和URL
的DOCTYPE
,也以严格模式呈现,但有过渡DTD
而没有URL
(统一资源标识符,就是声明最后的地址)会导致页面以混杂模式呈现(有 URL 的过渡 DTD ——严格模式;没有 URL 的过渡 DTD ——混杂模式);DOCTYPE
不存在或形式不正确会导致文档以混杂模式呈现(DTD不存在或者格式不正确——混杂模式);HTML5
没有DTD
,因此也就没有严格模式与混杂模式的区别,HTML5
有相对宽松的 法,实现时,已经尽可能大的实现了向后兼容(HTML5 没有严格和混杂之分)。总之,严格模式让各个浏览器统一执行一套规范兼容模式保证了旧网站的正常运行。
5.script标签中defer和async的区别
如果没有defer或async属性,浏览器会立即加载并执行相应的脚本。它不会等待后续加载的文档元素,读取到就会开始加载和执行,这样就阻塞了后续文档的加载。
defer 和 async属性都是去异步加载外部的JS脚本文件,它们都不会阻塞页面的解析,其区别如下:
1.defer要等到整个页面正常渲染结束,才会执行;而async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染(当渲染在脚本下载过程就完成,后续就直接执行)。defer是【渲染完再执行】 async是【下载完就执行】。
2.如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本不能保证加载顺序。
6.常用的meta标签有哪些
meta
标签由name
和content
属性定义,用来描述网页文档的属性,比如网页的作者,网页描述,关键词等。
常用的meta标签: | |
<meta charset="UTF-8" > | 用来描述HTML文档的编码类型 |
<meta name="keywords" content="关键词" /> | 页面关键字 |
<meta name="description" content="页面描述内容" /> | 页面描述 |
<meta http-equiv="refresh" content="0;url=" /> | 页面重定向和刷新 |
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> | 适配移动端,可以控制视口的大小和比例 |
<meta name="robots" content="index,follow" /> | 搜索引擎索引方式 |
7.HTML5有哪些更新
1.语义化标签
<header></header> | 定义文档的页眉(头部) |
<nav></nav> | 定义导航链接的部分 |
<section></section> | 定义文档中的节(有语义化的div) |
<main></main> | 主要区域 |
<article></article> | 定义文章内容 |
<aside></aside> | 定义其所处内容之外的内容(侧边栏) |
<footer></footer> | 定义文档或节的页脚(底部) |
2.媒体标签
<audio src='' controls autoplay loop='true'></audio> | 音频 controls 控制面板 autoplay 自动播放 loop='true'循环播放 |
<video src='' poster='imgs/aa.jpg' controls></video> | 视频 poster:指定视频还没有完全下载完毕,或者用户还没有点击播放前显示的封面。默认显示当前视频文件的第一针画面,当然通过poster也可以自己指定。 controls 控制面板 width 宽度 height 高度 |
<video> <source src='aa.flv' type='video/flv'></source> <source src='aa.mp4' type='video/mp4'></source> </video> | 因为浏览器对视频格式支持程度不一样,为了能够兼容不同的浏览器,可以通过source来指定视频源。 |
3.表单
表单类型: <input type=“表单类型” /> | |
| 能够验证当前输入的邮箱地址是否合法 |
url | 验证URL |
number | 只能输入数字,其他类型输入不了,而且自带上下增大减小箭头,max属性可以设置为最大值,min可以设置为最小值,value为默认值。 |
search | 输入框后面会给提供一个小叉,可以删除输入的内容,更加人性化。 |
range | 可以提供给一个范围,其中可以设置max和min以及value,其中value属性可以设置为默认值 |
color | 提供了一个颜色拾取器 |
time | 时分秒 |
date | 日期选择年月日 |
datetime | 时间和日期(目前只有Safari支持) |
datetime-local | 日期时间控件 |
week | 周控件 |
month | 月控件 |
表单属性: | |
placeholder | 提示信息 |
autofocus | 自动获取焦点 |
autocomplete=“on” 或者 autocomplete=“off” | 使用这个属性需要有两个前提: 表单必须提交过,必须有name属性。 |
required | 要求输入框不能为空,必须有值才能够提交。 |
pattern=" " | 里面写入想要的正则模式,例如手机号patte="^(+86)?\d{10}$" |
multiple | 可以选择多个文件或者多个邮箱 注意:在选择文件的时候要按住Ctrl键才能同时选择多个文件 |
form=" form表单的ID" |
表单事件: | |
oninput | 每当input里的输入框内容发生变化都会触发此事件。 |
oninvalid | 当验证不通过时触发此事件。 |
4.进度条、度量器
progress标签 | 用来表示任务的进度(IE、Safari不支持),max用来表示任务的进度,value表示已完成多少 |
meter标签 | 用来显示剩余容量或剩余库存(IE、Safari不支持) |
5.DOM查询操作
document.querySelector() | 它们选择的对象可以是标签,可以是类(需要加点),可以是ID(需要加#) |
document.querySelectorAll() |
6.Web存储
localStorage | 没有时间限制的数据存储 |
sessionStorage | 针对一个 session 的数据存储 注意:sessionStorage和session不是同一个东西 sessionStorage 是浏览器端的存储机制,用于保存页面会话期间的数据,而 session 是服务器端的会话机制,用于跟踪用户状态和保存用户信息。两者的作用域和存储位置不同,但它们都可以用于在 Web 应用程序中管理数据和用户会话。 |
7.其他
<img draggable="true" /> | 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。 |
<canvas id="myCanvas" width="200" height="100"></canvas> | canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 |
SVG | VG 指可伸缩矢量图形,用于定义用于网络的基于矢量的图形,使用 XML 格式定义图形,图像在放大或改变尺寸的情况下其图形质量不会有损失,它是万维网联盟的标准 |
Geolocation(地理定位) | 用于定位用户的位置 |
8.img的srcset属性的作用
实现响应式图片。
在指定宽度或像素密度的情况下加载对应的图片地址
<img src="image-128.png" srcset="image-128.png 128w, image-256.png 256w, image-512.png 512w" sizes="(max-width: 360px) 340px, 128px" /> | 其中srcset指定图片的地址和对应的图片质量。sizes用来设置图片的尺寸零界点。对于 srcset 中的 w 单位,可以理解成图片质量。如果可视区域小于这个质量的值,就可以使用。浏览器会自动选择一个最小的可用图片。 |
9.行内元素有哪些?块级元素有哪些?空(void)元素有哪些?
行内元素 | a、b、span、img、input、select、strong |
块级元素 | div、ul、ol、li、dl、dt、dd、h1、h2、h3、h4、h5、h6、p |
空元素 | 空元素是在开始标签中关闭的,也就是空元素没有闭合标签 常见的有: 鲜见的有: |
10.对web worker的理解
1.什么是Web Worker?
JavaScript 语言采用的是单线程的,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。Web Worker 是一种在浏览器中实现多线程处理的技术,允许在后台线程中执行脚本,从而避免长时间运行的脚本阻塞用户界面。Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。主线程与 Worker 之间的通信内容,可以是文本,也可以是对象。
2.Web Worke主要特点
同源限制 | Worker 线程必须与主线程的脚本文件同源。 |
通信机制 | 主线程和 Worker 线程之间不能直接通信,必须通过消息传递(postMessage 和 onmessage)进行通信。消息传递是异步的,确保了线程间的隔离和安全性。 双方都使用 postMessage() 方法发送各自的消息,使用 onmessage 事件处理函数来响应消息(消息被包含在 message 事件的 data 属性中)。这个过程中数据并不是被共享而是被复制。 self.postMessage():向产生这个 Worker 线程发送消息。 Worker.postMessage():向 Worker 线程发送消息。 |
资源限制 | Worker 线程不能访问 DOM,也不能使用某些全局对象(如 window),也无法读取本地文件,即不能打开本机的文件系统(file://),它所加载的脚本,必须来自网络。 |
11.HTML5的离线存储怎么使用,它的工作原理是什么?
离线存储指的是:在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。
原理:HTML5的离线存储是基于一个新建的
.appcache
文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。
使用方法:
(1)创建一个和 html 同名的 manifest 文件,然后在页面头部加入 manifest 属性:
<html lang="en" manifest="index.manifest"> (2)在
cache.manifest
文件中编写需要离线存储的资源:
CACHE MANIFEST
#v0.11
CACHE:
js/app.js
css/style.css
NETWORK:
resourse/logo.png
FALLBACK:
/ /offline.html
- CACHE: 表示需要离线存储的资源列表,由于包含 manifest 文件的页面将被自动离线存储,所以不需要把页面自身也列出来。
- NETWORK: 表示在它下面列出来的资源只有在在线的情况下才能访问,他们不会被离线存储,所以在离线情况下无法使用这些资源。不过,如果在 CACHE 和 NETWORK 中有一个相同的资源,那么这个资源还是会被离线存储,也就是说 CACHE 的优先级更高。
- FALLBACK: 表示如果访问第一个资源失败,那么就使用第二个资源来替换他,比如上面这个文件表示的就是如果访问根目录下任何一个资源失败了,那么就去访问 offline.html 。
如何更新缓存:
(1)更新 manifest 文件
(2)通过 javascript 操作
(3)清除浏览器缓存
注意事项:
(1)浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。
(2)如果 manifest 文件,或者内部列举的某一个文件不能正常下载,整个更新过程都将失败,浏览器继续全部使用老的缓存。
(3)引用 manifest 的 html 必须与 manifest 文件同源,在同一个域下。
(4)FALLBACK 中的资源必须和 manifest 文件同源。
(5)当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。
(6)站点中的其他页面即使没有设置 manifest 属性,请求的资源如果在缓存中也从缓存中访问。
(7)当 manifest 文件发生改变时,资源请求本身也会触发更新。
12.浏览器是如何对HTML5的离线储存资源进行管理和加载?
在线的情况下:
浏览器发现 html 头部有 manifest 属性,它会请求 manifest 文件,如果是第一次访问页面 ,那么浏览器就会根据 manifest 文件的内容下载相应的资源并且进行离线存储。如果已经访问过页面并且资源已经进行离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的 manifest 文件与旧的 manifest 文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,就会重新下载文件中的资源并进行离线存储。
离线的情况下:
浏览器会直接使用离线存储的资源。
13.title与h1的区别、b与strong的区别、i与em的区别?
title属性没有明确意义只表示是个标题,h1则表示层次明确的标题,对页面信息的抓取有很大的影响。(title是网页的标题,h1是网页内容中的标题)
strong标签有语义,是起到加重语气的效果,而b标签是没有的,b标签只是一个简单加粗标签。b标签之间的字符都设为粗体,strong标签加强字符的语气都是通过粗体来实现的,而搜索引擎更侧重strong标签。
i内容展示为斜体,em表示强调的文本
14.iframe有哪些优点和缺点?
优点:
- 解决加载缓慢的第三方内容,例如图标和广告等的加载问题
- 能并行加载脚本
- 方便管理,指的是如果有多个页面需要用到iframe的内容,那么只要修改iframe的内容就可以实现统一管理
- iframe可以原封不动的把嵌入的网页显示出来
缺点:
- 会产生很多的页面,不容易管理
- 会增加服务器的http请求对大型网址不可取
- 会阻塞父页面的load事件
- iframe和主页面共享连接池,而浏览器对相同域的链接有限制,所以会影响页面的并行加载,也就是说子文档和父文档的请求数会被计算在一起
- 不利于搜索引擎优化,也就是不利于SEO
解决方法:如果需要使用iframe,最好是通过JavaScript动态给iframe添加src属性值。
15.label的作用是什么?如何使用?
label标签来定义表单控件的关系:当用户选择label标签时,浏览器会自动将焦点转到和label标签相关的表单控件上。
使用方式: <label for="mobile">Number:</label>
<input type="text" id="mobile"/><label>Date:<input type="text"/></label>
16.Canvas和SVG的区别
1.Canvas
Canvas是画布,通过Javascript来绘制2D图形,是逐像素进行渲染的。其位置发生改变,就会重新进行绘制。
特点:
- 依赖分辨率
- 不支持事件处理器
- 弱的文本渲染能力
- 能够以 .png 或 .jpg 格式保存结果图像
- 最适合图像密集型的游戏,其中的许多对象会被频繁重绘
2.SVG
SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言XML描述的2D图形的语言,SVG基于XML就意味着SVG DOM中的每个元素都是可用的,可以为某个元素附加Javascript事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。
特点:
- 不依赖分辨率
- 支持事件处理器
- 最适合带有大型渲染区域的应用程序(比如谷歌地图)
- 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
- 不适合游戏应用
总结:Canvas按像素渲染,SVG按xml绘制,所以Canvas缩放会更模糊,但是动态效果更好,SVG则反之。
17.head标签有什么作用,其中什么标签必不可少?
<head> 标签用于定义文档的头部,它是所有头部元素的容器。<head> 中的元素可以引用脚本、指示浏览器在哪里找到样式表、提供元信息等。
文档的头部描述了文档的各种属性和信息,包括文档的标题、在 Web 中的位置以及和其他文档的关系等。绝大多数文档头部包含的数据都不会真正作为内容显示给读者。
在head部分使用的标签: <base>
<link>
<meta>
<script>
<style>
<title>(文档的标题,必需的元素)
18.浏览器乱码的原因是什么?如何解决?
产生乱码的原因:
- 网页源代码是
gbk
的编码,而内容中的中文字是utf-8
编码的,这样浏览器打开即会出现html
乱码,反之也会出现乱码;html
网页编码是gbk
,而程序从数据库中调出呈现是utf-8
编码的内容也会造成编码乱码;- 浏览器不能自动检测网页编码,造成网页乱码。
解决办法:
- 使用软件编辑HTML网页内容;
- 如果网页设置编码是
gbk
,而数据库储存数据编码格式是UTF-8
,此时需要程序查询数据库数据显示数据前进行程序转码;- 如果浏览器浏览时候出现网页乱码,在浏览器中找到转换编码的菜单进行转换。
19.渐进增强和优雅降级之间的区别
渐进增强(progressive enhancement):主要是针对低版本的浏览器进行页面重构,保证基本的功能情况下,再针对高级浏览器进行效果、交互等方面的改进和追加功能,以达到更好的用户体验。
优雅降级 graceful degradation: 一开始就构建完整的功能,然后再针对低版本的浏览器进行兼容。
两者区别:
- 优雅降级是从复杂的现状开始的,并试图减少用户体验的供给;而渐进增强是从一个非常基础的,能够起作用的版本开始的,并在此基础上不断扩充,以适应未来环境的需要;
- 降级(功能衰竭)意味着往回看,而渐进增强则意味着往前看,同时保证其根基处于安全地带。
“优雅降级”观点认为应该针对那些最高级、最完善的浏览器来设计网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如 IE、Mozilla 等)的前一个版本。 在这种设计范例下,旧版的浏览器被认为仅能提供“简陋却无妨 (poor, but passable)” 的浏览体验。可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较大的错误之外,其它的差异将被直接忽略。
“渐进增强”观点则认为应关注于内容本身。内容是建立网站的诱因,有的网站展示它,有的则收集它,有的寻求,有的操作,还有的网站甚至会包含以上的种种,但相同点是它们全都涉及到内容。这使得“渐进增强”成为一种更为合理的设计范例。这也是它立即被 Yahoo 所采纳并用以构建其“分级式浏览器支持 (Graded Browser Support)”策略的原因所在。
20.说一下HTML5 drag API
dragstart | 事件主体是被拖放元素,在开始拖放被拖放元素时触发。 |
drag | 事件主体是被拖放元素,在正在拖放被拖放元素时触发。 |
dragend | 事件主体是被拖放元素,在整个拖放操作结束时触发。 |
dragenter | 事件主体是目标元素,在被拖放元素进入某元素时触发。 |
dragover | 事件主体是目标元素,在被拖放在某元素内移动时触发。 |
dragleave | 事件主体是目标元素,在被拖放元素移出目标元素是触发。 |
drop | 事件主体是目标元素,在目标元素完全接受被拖放元素时触发。 |
学习链接:前端面试题之HTML篇https://www.yuque.com/cuggz/interview/gme0bw
相关文章:
前端面试题之HTML篇
1.src和href的区别 src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。 src可用于img、input、style、script、iframe---同步加载执行 href可用于link、a---异步 1.用途不同 src 用于引入外部资源,通常是图像、视频、JavaScript 文件等&am…...
Selenium 调用模型接口实现功能测试
要使用 Selenium 调用模型接口实现功能测试,可按以下步骤进行: 1. 环境准备 安装 Selenium:使用 pip install selenium 安装 Selenium 库。安装浏览器驱动:根据使用的浏览器(如 Chrome、Firefox 等)下载对应的驱动,并将其添加到系统的环境变量中。例如,Chrome 浏览器需…...
java后端开发day18--学生管理系统
(以下内容全部来自上述课程) 1.业务分析并搭建主菜单 1.需求 采取控制台的方式去书写学生管理系统 2.分析 1.初始菜单 2.学生类 属性:id,姓名,年龄,家庭住址 3.添加功能 键盘录入每一个学生信息并…...
计算机毕业设计SpringBoot+Vue.jst0图书馆管理系统(源码+LW文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【DeepSeek】【GPT-Academic】:DeepSeek集成到GPT-Academic(官方+第三方)
目录 1 官方deepseek 1.1 拉取学术GPT项目 1.2 安装依赖 1.3 修改配置文件中的DEEPSEEK_API_KEY 2 第三方API 2.1 修改DEEPSEEK_API_KEY 2.2 修改CUSTOM_API_KEY_PATTERM 2.3 地址重定向 2.4 修改模型参数 2.5 成功调用 2.6 尝试添加一个deepseek-r1参数 3 使用千帆…...
生成对抗网络(GAN):让机器学习“创造”新世界
目录 引言 什么是生成对抗网络(GAN)? GAN的核心原理 GAN的损失函数 GAN的变种 1. 条件生成对抗网络(Conditional GAN, cGAN) 2. 深度卷积生成对抗网络(DCGAN) 3. 生成对抗网络的 Wassers…...
JavaScript系列(87)--Webpack 高级配置详解
Webpack 高级配置详解 🛠️ Webpack 是前端工程化中最流行的构建工具之一,掌握其高级配置可以帮助我们构建更高效、更优化的应用。本文将深入探讨Webpack的高级配置技巧和最佳实践。 Webpack 核心概念回顾 🌟 💡 小知识…...
48.日常算法
1.面试题 03.06. 动物收容所 题目来源 动物收容所。有家动物收容所只收容狗与猫,且严格遵守“先进先出”的原则。在收养该收容所的动物时,收养人只能收养所有动物中“最老”(由其进入收容所的时间长短而定)的动物,或…...
MySql数据库运维学习笔记
数据库运维常识 DQL、DML、DCL 和 DDL 是 SQL(结构化查询语言)中的四个重要类别,它们分别用于不同类型的数据库操作,下面为你简单明了地解释这四类语句: 1. DQL(数据查询语言,Data Query Langu…...
Starlink卫星动力学系统仿真建模第十讲-基于SMC和四元数的卫星姿态控制示例及Python实现
基于四元数与滑模控制的卫星姿态控制 一、基本原理 1. 四元数姿态表示 四元数运动学方程: 3. 滑模控制设计 二、代码实现(Python) 1. 四元数运算工具 import numpy as npdef quat_mult(q1, q2):"""四元数乘法""…...
MongoDB学习
MongoDB 是一种流行的 NoSQL 数据库,以文档存储为核心,适用于高灵活性、高扩展性的场景。本文将从基础概念到实际应用,带你快速掌握 MongoDB 的核心操作。 1. MongoDB 简介 什么是 MongoDB? MongoDB 是一个基于分布式文件存储的…...
水利工程安全包括哪几个方面
水利工程安全培训的内容主要包括以下几个方面: 基础知识和技能培训 : 法律法规 :学习水利工程相关的安全生产法律法规,了解安全生产标准及规范。 事故案例 :通过分析事故案例,了解事故原因和教训&#x…...
九、数据治理架构流程
一、总体结构 《数据治理架构流程图》(Data Governance Architecture Flowchart) 水平结构:流程图采用水平组织,显示从数据源到数据应用的进程。 垂直结构:每个水平部分进一步划分为垂直列,代表数据治理的…...
Spring boot中的@ConfigurationProperties注解
Spring boot中的ConfigurationProperties注解 ConfigurationProperties 是 Spring Boot 提供的一个强大注解,用于将配置文件(如 application.properties 或 application.yml)中的配置绑定到一个 Java 对象中。它不仅简化了配置管理ÿ…...
04性能监控与调优篇(D2_JVM调优⼯具)
目录 学习前言 讲解一:理论篇(深入理解JVM第三版) 一、虚拟机性能监控、故障处理工具 1. 基本介绍 2. 基础故障处理工具 jps:虚拟机进程状况工具 jstat:虚拟机统计信息监视工具 jinfo:Java配置信息工…...
DeepSeek 提示词:基础结构
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
OkHttp、Retrofit、RxJava:一文讲清楚
一、okHttp的同步和异步请求 Call 是 OkHttp 的核心接口,代表一个已准备好执行的 HTTP 请求。它支持 同步 和 异步 两种模式: enqueue——>okHttp异步 OkHttpClient client new OkHttpClient();Request request new Request.Builder().url("…...
AI前端加速科学研究:ScriptEcho赋能科研新纪元
科学研究正面临前所未有的挑战。数据以前所未有的速度爆炸式增长,研究课题也变得日益复杂。如何高效地处理海量数据、构建复杂模型、并将其转化为有意义的结论,成为摆在科研人员面前的一道难题。传统的科研模式往往需要耗费大量的时间和精力在数据处理、…...
从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)?
本文首发:从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)? 阿里云百炼和火山引擎都推出了免费的 DeepSeek 模型体验额度,今天我和大家一起搭建一个本地的专属 AI 助手。 阿里云百炼为 …...
ChatGPT背后的理论基础:从预训练到微调的深度解析
友情提示:本文内容由银河易创(https://ai.eaigx.com)AI创作平台GPT-4o-mini模型生成,仅供参考。请根据具体情况和需求进行适当的调整和验证。 随着人工智能特别是自然语言处理技术的飞速发展,ChatGPT作为一种强大的对话…...
Java八股文(下)
Java八股文下篇 八、JVM高级篇1、JVM的内存模型以及分区介绍一下?2、四种引用方式有什么?3、判断是否为垃圾算法?4、垃圾回收算法介绍一下?5、类的生命周期以及类加载过程6、加载器种类有什么?7、什么是双亲委派模型以…...
软考高级【网络规划设计师】 综合知识
引言:软考高级【网络规划设计师】共分为3个部分,综合知识,案例分析,论文。这里主要讲诉综合知识的相关内容。综合知识一共75道单选,题目跟网工类似,稍难。 第1章 计算机网络基础 考点分析: 本…...
django框架使用
一、app注册: pycharm使用django框架,注意在注册界面时就创建app,如果没有创建app。就在终端中运行 python manage.py startapp [app名] 然后再在settings.py里注册。 格式为: [app名].apps.[首字母大写的app名]Config 二、创…...
Linux主机用户登陆安全配置
Linux主机用户登陆安全配置 在Linux主机上进行用户登录安全配置是一个重要的安全措施,可以防止未经授权的访问。以下是如何创建用户hbu、赋予其sudo权限,以及禁止root用户SSH登录,以及通过ssh key管理主机用户登陆。 创建用户hbu 使用具有…...
MySQL | MySQL库、表的基本操作
MySQL库、表的基本操作01 一、库操作1.1 查看数据库1.2 创建数据库1.3 选择数据库1.4 查看创建数据库的SQL语句1.5 修改数据库1.6 删除数据库 二、表操作2.1 创建数据表2.2 查看表2.3 查看表结构2.4 查看创建数据库的SQL语句2.5 修改表2.6 删除表 ⚠️MySQL版本 8.0 一、库操作…...
【Uniapp-Vue3】在uniapp中使用pinia的基本用法
引入pinia: 在main.js中对pinia进行引入,使用和导出 import * as Pinia from pinia; // 引入pinia app.use(Pinia.createPinia()); // 使用pinia 在项目根目录下创建一个stores文件夹,里面创建一个counter.js文件 我们在counter.js中定义…...
mysql中的计算日期函数 理解、用法
三种计算日期的函数 函数用途示例DATEDIFF()计算两个日期的天数差DATEDIFF(2023-10-05, 2023-10-01) → 4TIMESTAMPDIFF()按指定单位(年、月、小时等)计算差TIMESTAMPDIFF(MONTH, 2023-01-01, 2023-03-01) → 2DATE_ADD()日期加法DATE_ADD(2023-10-01, …...
HTTP实验(ENSP模拟器实现)
目录 HTTP概述 HTTP实验 HTTPS 实验 HTTP概述 HTTP(HyperText Transfer Protocol,超文本传输协议),设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 HTTP定义了多种请求方法,常用的包括: …...
Ubuntu指令(一)
一、终端操作指令 打开终端,有两种便捷方式: 直接点击系统中的终端按钮;使用快捷键ctrl alt T。 关闭终端,同样有多种选择: 在终端输入exit指令;使用快捷键ctrl d;直接点击终端窗口的关闭…...
结构型模式 - 装饰者模式 (Decorator Pattern)
结构型模式 - 装饰者模式 (Decorator Pattern) 在展开讲装饰者模式之前,不得不提一下代理模式,因为这两者在一定的层度上是有相似性的, 通过对比可以让我们更好的理解装饰者. 定义与核心目的 装饰者模式 定义:动态地将责任附加到对象上。若要扩展功能,…...
11.Docker 之分布式仓库 Harbor
Docker 之分布式仓库 Harbor Docker 之分布式仓库 Harbor1. Harbor 组成2. 安装 Harbor Docker 之分布式仓库 Harbor Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,由 VMware 开源,其通过添加一些企业必需的功能特性,例…...
vue2使用xlsx依赖导出excel并封装组件
1. 安装 npm install xlsx file-saver --save2. 简单封装 import * as XLSX from xlsx; import { saveAs } from file-saver;export function exportExcel(data, fileName) {return new Promise((resolve, reject) > {if (!data || !data.length) {return reject(new Erro…...
Python入门12:面向对象的三大特征与高级特性详解
面向对象编程(OOP)是Python编程中非常重要的一部分,它通过封装、继承和多态这三大特征,帮助我们更好地组织和管理代码。除此之外,Python还提供了一些其他特性,如类属性、类方法和静态方法,进一步…...
JVM之JVM的组成
Java 虚拟机(JVM)是 Java 程序的运行核心,它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。 类加载系统(Class Loading System) 类加载系统负责在程序运行时动态地将 Java 类加载到 J…...
计算机毕业设计SpringBoot+Vue.js中小型医院网站(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
滑动验证组件-微信小程序
微信小程序-滑动验证组件,直接引用就可以了,效果如下: 组件参数: 1.enable-close:是否允许关闭,默认true 2.bind:onsuccess:验证后回调方法 引用方式: <verification wx:if&qu…...
【DeepSeek问答】QProcess::start是异步的吗?会使UI卡顿吗?
好的,我现在需要回答用户关于QProcess::start是否是异步的,以及它是否会导致UI卡顿的问题。用户之前已经询问过如何开发一个调用7-Zip的Qt应用,并且我给出了示例代码。现在用户可能在使用过程中遇到了问题,或者想更深入了解QProce…...
WebXR教学 01 基础介绍
什么是WebXR? 定义 XR VR AR Web上使用XR技术的API WebXR 是一组用于在 Web 浏览器中实现虚拟现实(VR)和增强现实(AR)应用的技术标准。它由 W3C 的 Immersive Web 工作组开发,旨在提供跨设备的沉浸式体验…...
数据开发面试:DQL,
DQL常见面试题 where 和 having 的区别 三个排序开窗函数的区别 left join 用where 筛选 和 用on筛选的区别 ON 子句:用于定义连接条件,不会丢失左表的行。 WHERE 子句:用于过滤连接后的结果集,可能会丢失左表中没有匹配的行 …...
sage-huga改进SITAN
Sage-Husa自适应滤波算法 Sage-Husa自适应滤波算法是一种在递推滤波过程中实时估计和修正系统噪声和观测噪声统计特性的算法,从而降低系统模型误差,提高滤波精度。该算法基于卡尔曼滤波,并通过自适应调整噪声协方差矩阵来优化滤波效果。 算法原理 Sage-Husa滤波器的核心思…...
深入解析React useEffect与useLayoutEffect:区别、原理与实践
🌌 深入解析React useEffect与useLayoutEffect:区别、原理与实践 在React函数组件中,useEffect和useLayoutEffect是处理副作用的两个核心Hook。它们看似相似,但在执行时机和应用场景上有本质区别。本文将通过原理剖析、对…...
1分钟用DeepSeek编写一个PDF转Word软件
一、引言 如今,在线工具的普及让PDF转Word成为了一个常见需求,常见的pdf转word工具有收费的wps,免费的有pdfgear,见下文: PDFgear:一款免费的PDF编辑、格式转化软件-CSDN博客 还有网上在线的免费pdf转word工具smallp…...
百度觉醒,李彦宏渴望光荣
文 | 大力财经 作者 | 魏力 2025年刚刚开年,被一家名为DeepSeek的初创公司强势改写。在量化交易出身的创始人梁文锋的带领下,这支团队以不到ChatGPT 6%的训练成本,成功推出了性能可与OpenAI媲美的开源大模型。 此成果一经问世,…...
MySQL知识
1.Navicat客户端连接 打开navicat,点击连接,点击MySQL 输入连接名与密码,如果连接的mysql是windows下的mysql主机号就填写localhost 填写好后点击测试连接 点击确定,mysql连接navicat成功 2.MySQL数据定义语言(DDL) DDL用于数据库…...
从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(三) 实现注册 登录接口
1.划分文件夹 在src目录下创建controllers middleware models routes controllers 放具体的方法 signup login middleware 里面是中间件 请求的验证 models 放对象实体 routes 处理访问路径像/signup /login 等等 2. 接口开发 系统的主要 有用户认证 和 消息 2种类型…...
Pytorch实现之浑浊水下图像增强
简介 简介:这也是一篇非常适合GAN小白们上手的架构文章!提出了一种基于GAN的水下图像增强网络。这种网络与其他架构类似,生成器是卷积+激活函数+归一化+残差结构的组成,鉴别器是卷积+激活函数+归一化以及全连接层。损失函数是常用的均方误差、感知损失和对抗损失三部分。 …...
代码异常(js中forEach)NO.3
1. 环境 Vue3,Element Plsu 2. 示例代码 dataList.value.forEach((x) > {if (x.id ids.value[0]) {x { id: ids.value[0], ...form.value }}})3. 情景描述 循环不能正确改变dataList.value里面的值 4. 原因 在 JavaScript 中,forEach 的回调函…...
Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案
Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案 拿了一个比较老的项目部署在本地,然后先安装依赖npm install,最后npm run serve,在run serve的时候报错:报错error:0308010C:digital envelope routines::unsupportedÿ…...
stm32108键C-B全调性_动态可视化乐谱钢琴
108键全调性钢琴 一 基本介绍1 项目简介2 实现方式3 项目构成 二 实现过程0 前置基本外设驱动1 声音控制2 乐谱录入&基础乐理3 点阵屏谱点动态刷新4 项目交互控制5 录入新曲子过程 三 展示,与链接视频地址1 主要功能函数一览2 下载链接3 视频效果 一 基本介绍 …...
OpenIPC开源FPV之Adaptive-Link安装
OpenIPC开源FPV之Adaptive-Link安装 1. 源由2. 介绍2.1 天空端安装2.2 地面端安装 3. 问题汇总3.1 安装脚本问题3.2 网络安装问题3.3 非SSC30KQ/SSC338Q硬件3.4 代码疑问 4. 总结5. 后续 1. 源由 鉴于飞行过程,发现一些马赛克现象,且60FPS桌面30FPS的录…...