当前位置: 首页 > article >正文

JavaScript 中常见的鼠标事件及应用

JavaScript 中常见的鼠标事件及应用

在 JavaScript 中,鼠标事件是用户与网页进行交互的重要方式,通过监听这些事件,开发者可以实现各种交互效果,如点击、悬停、拖动等。
在 JavaScript 中,鼠标事件类型多样,下面为你详细介绍常见的鼠标事件类型及应用:

一. 基础交互事件

1. click

触发时机:

当用户在元素上按下并释放鼠标主按钮(通常是左键)时触发。

应用场景:

常用于处理按钮点击、链接跳转、表单提交等操作。

示例代码:
<!DOCTYPE html>
<html lang="en">
<body><button id="myButton">点击我</button><script>const button = document.getElementById('myButton');button.addEventListener('click', function () {alert('按钮被点击了!');});</script>
</body>
</html>

2. dblclick

触发时机:

当用户在短时间内快速连续点击两次鼠标主按钮时触发。

应用场景:

可用于实现双击放大图片、编辑文本等功能。

示例代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><style>#myDiv {width: 200px;height: 200px;background-color: lightblue; /* 初始背景颜色 */display: flex; /* 使用flex布局 */justify-content: center; /* 水平居中 */align-items: center; /* 垂直居中 */font-size: 30px;font-weight: bold;}</style>
</head>
<body><h1>双击鼠标事件,改变颜色</h1><div id="myDiv">双击我,<br>改变颜色</div><script>const div = document.getElementById('myDiv');// 颜色数组const color = ['lightblue', 'pink', 'lightgreen', 'lightyellow', 'lightgray']; // 初始化计数器为-1,以便第一次双击时颜色数组从索引0开始变化let dblcount = -1; // 添加双击事件监听器div.addEventListener('dblclick', function () {dblcount++;// 循环改变背景颜色this.style.backgroundColor = color[dblcount % color.length]; });</script>
</body>
</html>

二、按钮状态事件

3. mousedown

触发时机:

当用户在元素上按下任意鼠标按钮时触发。

应用场景:

常用于实现拖动元素、绘制图形等操作的起始点。

示例代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Untitled-1</title>
</head>
<body><h1>鼠标事件-按下</h1><div id="draggable" style="width:100px;height:100px;background-color:red;">拖动我</div><script>const draggable = document.getElementById('draggable');draggable.addEventListener('mousedown', function () {console.log('鼠标按下');draggable.style.backgroundColor = 'blue';});</script>
</body>
</html>

4. mouseup

触发时机:
  • 当用户在元素上释放之前按下的鼠标按钮时触发。
应用场景:
  • 通常与 mousedown 事件配合使用,用于完成拖动、绘制等操作。
示例代码:
<!DOCTYPE html>
<html lang="en">
<body><div id="drawArea" style="width: 200px; height: 200px; border: 1px solid black;"></div><script>const drawArea = document.getElementById('drawArea');drawArea.addEventListener('mousedown', function () {console.log('鼠标按下');drawArea.style.backgroundColor = 'blue';});drawArea.addEventListener('mouseup', function () {console.log('鼠标释放');drawArea.style.backgroundColor = 'red';});</script>
</body>
</html>

此代码的主要功能是通过监听鼠标在指定div上的按下和释放事件,实现div背景颜色的变化。具体来说:

  • 当用户点击div时,div的背景颜色会变为蓝色,同时在控制台输出“鼠标按下”。
  • 当用户松开鼠标时,div的背景颜色会变为红色,同时在控制台输出“鼠标释放”。

这段代码主要用于演示如何使用JavaScript的事件监听机制来响应用户的鼠标操作,并实时更新网页元素的样式。

三、鼠标移动事件

5. mousemove

触发时机:
  • 当鼠标指针在元素上移动时,会持续触发该事件。
应用场景:
  • 常用于实现鼠标跟随效果、绘制轨迹、实时更新鼠标位置信息等。
示例代码:
<!DOCTYPE html>
<html lang="en">
<body><div id="moveArea" style="width: 200px; height: 200px; border: 1px solid black;"></div><p>请在黑色区域内移动鼠标,并查看下面的鼠标位置。</p><p>鼠标位置: (0, 0)</p><script>const moveArea = document.getElementById('moveArea');moveArea.addEventListener('mousemove', function (event) {console.log(`鼠标位置: (${event.offsetX}, ${event.offsetY})`);// 使用querySelector选择页面中最后一个<p>标签,并将其文本内容更新为当前鼠标的位置。document.querySelector('p:last-of-type').textContent = `鼠标位置: (${event.offsetX}, ${event.offsetY})`;});</script>
</body>
</html>

这段代码的主要功能是在网页上创建一个200x200像素的黑色边框区域,并实时显示用户在这个区域内的鼠标位置。每当鼠标在该区域内移动时,位置信息会被更新到页面上的最后一个段落标签中,并且在控制台中输出。

6. mouseovermouseout

触发时机:
  • mouseover当鼠标指针从元素外部移动到元素内部时触发,并且当鼠标进入该元素的子元素时也会触发。mouseout当鼠标指针从元素内部移动到元素外部时触发,并且当鼠标离开该元素的子元素时也会触发。
应用场景:
  • mouseover常用于实现鼠标悬停效果,如显示下拉菜单、改变元素样式等。mouseout通常与 mouseover 事件配合,用于恢复元素的原始样式。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>鼠标悬停切换类</title><style>/* 设置div的基本样式 */div {position: relative;display: inline-block;place-content: center;text-align: center;font-size: 20px;color: white;cursor: pointer;}/* 定义原始样式 */.original {width: 180px;height: 180px;background-color: lightgray;}/* 定义悬停时的样式 */.hovered {width: 180px;height: 180px;background-color: pink;border: 2px solid black;}</style>
</head>
<body><!-- 创建一个div元素,初始应用original样式 --><div id="element" class="original">悬停切换样式</div><script>// 获取id为element的div元素const element = document.getElementById('element');// 添加鼠标悬停事件监听器,切换到hovered样式element.addEventListener('mouseover', function () {this.classList.remove('original');this.classList.add('hovered');});// 添加鼠标移出事件监听器,切换回original样式element.addEventListener('mouseout', function () {this.classList.remove('hovered');this.classList.add('original');});</script>
</body>
</html>

这段代码的主要功能是在网页上实现一个简单的鼠标悬停效果。当用户将鼠标悬停在特定的div元素上时,该元素的背景颜色会从浅灰色变为粉色,并且增加一个黑色边框。当鼠标移开时,div元素的样式会恢复到原来的浅灰色背景无边框状态。这是一种常见的交互设计,用于提高用户体验,通过视觉反馈来告知用户他们与页面元素的交互状态。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>悬停下拉菜单示例</title><style>.menu {list-style-type: none;margin: 0;padding: 0;}.menu-item {position: relative;display: inline-block;}.menu-item a {display: block;padding: 10px;color: #fff;background-color: #007BFF;text-decoration: none;}.submenu {display: none;position: absolute;top: 100%;left: 0;background-color: #007BFF;list-style-type: none;margin: 0;padding: 0;box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);}.submenu li {width: 200px;}.submenu li a {padding: 12px 16px;text-decoration: none;display: block;color: white;}.submenu li a:hover {background-color: #555;}</style>
</head>
<body><ul class="menu"><li class="menu-item"><a href="#">菜单项1</a><ul class="submenu"><li><a href="#">子菜单项1-1</a></li><li><a href="#">子菜单项1-2</a></li><li><a href="#">子菜单项1-3</a></li></ul></li><li class="menu-item"><a href="#">菜单项2</a><ul class="submenu"><li><a href="#">子菜单项2-1</a></li><li><a href="#">子菜单项2-2</a></li><li><a href="#">子菜单项2-3</a></li></ul></li></ul><script>document.addEventListener('DOMContentLoaded', function () {const menuItems = document.querySelectorAll('.menu-item');menuItems.forEach(function (item) {item.addEventListener('mouseover', function () {const submenu = this.querySelector('.submenu');if (submenu) {submenu.style.display = 'block';}});item.addEventListener('mouseout', function () {const submenu = this.querySelector('.submenu');if (submenu) {submenu.style.display = 'none';}});});});</script>
</body>
</html>

下面是对 javascript 代码的逐步分解:

  1. document.addEventListener('DOMContentLoaded', function () { ... });

    • 这行代码的作用是监听整个文档是否已经完全加载完毕。只有在文档加载完成后,脚本中的内容才会被执行,确保在操作DOM元素时这些元素已经存在。
  2. const menuItems = document.querySelectorAll('.menu-item');

    • 使用querySelectorAll方法选择所有带有menu-item类名的元素,并将它们存储在一个NodeList对象menuItems中。在这个例子中,menuItems包含了两个菜单项,即“菜单项1”和“菜单项2”。
  3. menuItems.forEach(function (item) { ... });

    • 对于NodeList中的每一个元素(即每个菜单项),执行一次回调函数。回调函数中的参数item代表当前正在处理的菜单项。
  4. item.addEventListener('mouseover', function () { ... });

    • 为每个菜单项添加一个mouseover事件监听器。当鼠标进入菜单项时,会触发回调函数中的代码。
  5. const submenu = this.querySelector('.submenu');

    • mouseover事件的回调函数中,this指向触发事件的菜单项。通过querySelector方法,我们在这个菜单项内部查找第一个带有submenu类名的元素,即子菜单。
  6. if (submenu) { submenu.style.display = 'block'; }

    • 如果找到了子菜单(即submenu不为null),则将它的display属性设置为’block’,使子菜单显示出来。
  7. item.addEventListener('mouseout', function () { ... });

    • 为每个菜单项添加一个mouseout事件监听器。当鼠标离开菜单项时,会触发回调函数中的代码。
  8. if (submenu) { submenu.style.display = 'none'; }

    • 同样地,在mouseout事件的回调函数中,如果找到了子菜单,则将其display属性设置为’none’,使子菜单隐藏起来。

7. mouseentermouseleave

触发时机:
  • mouseenter当鼠标指针从元素外部移动到元素内部时触发,但当鼠标进入该元素的子元素时不会再次触发。mouseleave当鼠标指针从元素内部移动到元素外部时触发,但当鼠标离开该元素的子元素时不会触发。
应用场景:
  • mouseenter与 mouseover 类似,但不会受子元素影响,适合需要精确控制悬停范围的场景。
  • mouseleave与 mouseout 类似,但不会受子元素影响,常与 mouseenter 配合使用。
示例代码:
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>mouseenter 事件示例</title><style>.tooltip {display: none;position: absolute;background-color: #007BFF;color: white;padding: 5px 10px;border-radius: 5px;font-size: 12px;}.button-container {position: relative;display: inline-block;}</style>
</head>
<body><div class="button-container"><button id="myButton">悬停我</button><div class="tooltip" id="myTooltip">这是一个提示信息</div></div><script>document.addEventListener('DOMContentLoaded', function () {const button = document.getElementById('myButton');const tooltip = document.getElementById('myTooltip');button.addEventListener('mouseenter', function () {// 显示提示框tooltip.style.display = 'block';// 获取按钮的位置,并设置提示框的位置const buttonRect = button.getBoundingClientRect();tooltip.style.top = `${buttonRect.bottom + window.scrollY}px`;tooltip.style.left = `${buttonRect.left + window.scrollX}px`;});button.addEventListener('mouseleave', function () {// 隐藏提示框tooltip.style.display = 'none';});});</script>
</body>
</html>

mouseenter 事件与 mouseover 事件的主要区别在于,mouseenter 不会冒泡到其子元素上,而 mouseover 会。这意味着当鼠标进入一个元素时,mouseenter 只会触发一次,而 mouseover 可能在鼠标进入子元素时再次触发。

mouseenter 事件最适合用于需要精确控制事件只在特定元素上触发的场景,而不需要考虑子元素的情况。例如,当你想要在鼠标进入某个按钮时显示一个提示,但不希望在子元素上重复显示这个提示时,可以使用 mouseenter

在上面的示例中,我们创建了一个按钮和一个提示框。当鼠标进入按钮区域时,使用 mouseenter事件来显示提示框,并根据按钮的位置动态设置提示框的位置,确保提示框显示在按钮下方。当鼠标离开按钮区域时,使用 mouseleave 事件来隐藏提示框。

这里使用 mouseenter 和 mouseleave 事件而不是 mouseover 和 mouseout 事件,是为了避免当鼠标移动到按钮的子元素(如果有)时,提示框被重复显示或隐藏。在这个简单的例子中,按钮没有子元素,但如果有更复杂的结构,mouseenter 和 mouseleave 的非冒泡特性会更显优势。

四、鼠标滚轮事件

8. wheel

触发时机:
  • 当用户滚动鼠标滚轮时触发。
应用场景:
  • 常用于实现页面滚动、缩放元素、切换幻灯片等功能。
示例代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>滚轮事件示例</title><style>body {height: 2000px; /* 为了能看到滚动效果 */}</style>
</head>
<body>
<script>// 获取body元素var body = document.body;// 添加滚轮事件监听器body.addEventListener('wheel', function(event) {// 阻止默认行为event.preventDefault();// 判断滚轮滚动的方向if (event.deltaY > 0) {console.log(event.deltaY);console.log('向下滚动');} else {console.log('向上滚动');}});
</script>
</body>
</html>

这段代码的主要功能是在网页的<body>元素上添加一个滚轮事件监听器,用于检测用户鼠标滚轮的滚动方向,并在控制台中输出滚动方向的信息。需要注意的是,这段代码还阻止了页面的默认滚动行为,因此即使用户尝试滚动鼠标滚轮,页面也不会发生自动的上下滚动。

五、鼠标右键事件

9. contextmenu

触发时机:
  • 当用户在元素上点击鼠标右键时触发。
应用场景:
  • 可用于自定义上下文菜单,替代浏览器默认的右键菜单。
示例代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>右击事件示例</title><style>body {height: 2000px;/* 为了能看到滚动效果 */position: relative;}#customMenu {display: none;position: absolute;background-color: #f9f9f9;border: 1px solid #d3d3d3;box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);padding: 5px 0;width: 150px;z-index: 1000;}#customMenu div {padding: 8px 15px;cursor: pointer;}#customMenu div:hover {background-color: #ddd;}</style>
</head>
<body><div id="customMenu"><div onclick="showAlert('选项1')">选项1</div><div onclick="showAlert('选项2')">选项2</div><div onclick="showAlert('选项3')">选项3</div></div><script>// 获取body元素,以便在页面上添加事件监听器var body = document.body;// 获取自定义菜单元素,该元素在用户右击时显示var customMenu = document.getElementById('customMenu');// 添加右击事件监听器body.addEventListener('contextmenu', function (event) {// 阻止默认行为(显示浏览器的上下文菜单)event.preventDefault();// 设置自定义菜单的位置为鼠标点击的位置customMenu.style.left = event.pageX + 'px';customMenu.style.top = event.pageY + 'px';// 显示自定义菜单customMenu.style.display = 'block';});// 添加点击页面其他地方隐藏菜单的事件监听器document.addEventListener('click', function (event) {if (event.target !== customMenu) {customMenu.style.display = 'none';}});// 显示弹窗的函数,用于测试菜单选项function showAlert(option) {alert('你点击了:' + option);}</script>
</body>
</html>

六、事件对象

在上述示例中,事件处理函数通常会接收一个事件对象作为参数(如 event)。通过这个事件对象,可以获取与鼠标事件相关的信息,如鼠标的坐标、按下的按钮等。常见的属性包括:

  • clientXclientY:鼠标相对于浏览器窗口可视区域的坐标。

  • offsetXoffsetY:鼠标相对于触发事件的元素的坐标。

  • button:表示按下的鼠标按钮,0 代表左键,1 代表中键,2 代表右键。

这些鼠标事件为开发者提供了丰富的交互手段,可以根据具体需求灵活运用,打造出更加生动和交互性强的网页。

相关文章:

JavaScript 中常见的鼠标事件及应用

JavaScript 中常见的鼠标事件及应用 在 JavaScript 中&#xff0c;鼠标事件是用户与网页进行交互的重要方式&#xff0c;通过监听这些事件&#xff0c;开发者可以实现各种交互效果&#xff0c;如点击、悬停、拖动等。 在 JavaScript 中&#xff0c;鼠标事件类型多样&#xff0…...

【nginx】Nginx的功能特性及常用功能

目录 1.核心功能特性1.1 高并发处理能力1.2 反向代理与负载均衡1.3 静态资源服务1.4 缓存加速1.5 SSL/TLS支持1.6 动态模块扩展1.7 流媒体服务1.8 高可用性 2.常用功能场景2.1 反向代理与负载均衡2.2 静态资源服务2.3 缓存加速2.4 HTTPS支持2.5 API网关2.6 微服务网关 3.优势总…...

make_01_Program_01_makefile .SECONDARY .dirstamp 是什么功能

在 Makefile 中&#xff0c;.SECONDARY 和 .dirstamp 与 GNU Make 处理文件和目标的方式有关。让我们分别解释这两个部分&#xff0c;以及它们结合在一起时的功能。 .SECONDARY 功能&#xff1a;.SECONDARY 是一个特殊的伪目标&#xff0c;用于告诉 make 保留所有中间目标文件…...

金仓数据库KCM认证考试介绍【2025年4月更新】

KCM&#xff08;金仓认证大师&#xff09;认证是金仓KES数据库的顶级认证&#xff0c;学员需通过前置KCA、KCP认证才能考KCM认证。 KCM培训考试一般1-2个月一次&#xff0c;KCM报名费原价为1.8万&#xff0c;当前优惠价格是1万&#xff08;趋势是&#xff1a;费用越来越高&…...

在 macOS 上安装和配置 Aria2 的详细步骤

在 macOS 上安装和配置 Aria2 的详细步骤&#xff1a; 1.安装 Aria2 方式一&#xff1a;使用 Homebrew Homebrew 是 macOS 上的包管理器&#xff0c;可以方便地安装和管理软件包。 • 打开终端。 • 输入以下命令安装 Aria2&#xff1a; brew install aria2• 检查安装是否…...

如何通过句块训练法(Chunks)提升英语口语

真正说一口流利英语的人&#xff0c;并不是会造句的人&#xff0c;而是擅长“调取句块”的人。下面我们从原理、方法、场景、资源几个维度展开&#xff0c;告诉你怎么用“句块训练法&#xff08;Chunks&#xff09;”快速提升英语口语&#xff1a; 一、什么是“句块”&#xff…...

[ctfshow web入门]burpsuite的下载与使用

下载 吾爱破解网站工具区下载burpsuite https://www.52pojie.cn/thread-1544866-1-1.html 本博客仅转载下载链接&#xff0c;下载后请按照说明进行学习使用 打开 配置 burpsuite配置 burpsuite代理设置添加127.0.0.1:8080 浏览器配置 如果是谷歌浏览器&#xff0c;打开win…...

文章记单词 | 第25篇(六级)

一&#xff0c;单词释义 mathematical&#xff1a;形容词&#xff0c;意为 “数学的&#xff1b;数学上的&#xff1b;运算能力强的&#xff1b;关于数学的”trigger&#xff1a;名词&#xff0c;意为 “&#xff08;枪的&#xff09;扳机&#xff1b;&#xff08;炸弹的&…...

vscode集成deepseek实现辅助编程(银河麒麟系统)【详细自用版】

针对开发者用户&#xff0c;可在Visual Studio Code中接入DeepSeek&#xff0c;实现辅助编程。 可参考我往期文章在银河麒麟系统环境下部署DeepSeek&#xff1a;基于银河麒麟桌面&&服务器操作系统的 DeepSeek本地化部署方法【详细自用版】 一、前期准备 &#xff08…...

【CMake】《CMake构建实战:项目开发卷》笔记-Chapter8-生成器表达式

第8章 生成器表达式 生成器表达式&#xff08;generator expression&#xff09;是由CMake生成器进行解析的表达式&#xff0c;因此&#xff0c;这些表达式只有在CMake的生成阶段才被解析为具体的值。 CMake在生成阶段&#xff0c;能够根据具体选用的构建系统生成器生成特定…...

elementui的默认样式修改

今天用element ui &#xff0c;做了个消息提示&#xff0c;发现提示的位置总是在上面&#xff0c;如图&#xff1a; 可是我想让提示的位置到下面来&#xff0c;该怎么办&#xff1f; 最后还是看了官方的api 原来有个自定义样式属性 customClass 设置下就好了 js代码 css代码 效…...

基于STM32的智能门禁系统设计与实现

一、项目背景与功能概述 在物联网技术快速发展的今天&#xff0c;传统门锁正在向智能化方向演进。本系统基于STM32F103C8T6微控制器&#xff0c;整合多种外设模块&#xff0c;实现了一个具备以下核心功能的智能门禁系统&#xff1a; 密码输入与验证&#xff08;4x3矩阵键盘&a…...

基于SpringBoot的河道水情大数据可视化分析平台设计与实现(源码+论文+部署讲解等)

需要资料&#xff0c;请文末联系 一、平台介绍 水情监测数据大屏 - 平台首页 日均水位 日均水速 二、论文内容 摘要&#xff08;中文&#xff09; 本文针对河道水情监测领域的数据管理和可视化分析需求&#xff0c;设计并实现了一套河道水情大数据可视化分析平台。该平台基…...

日志统计(双指针)

题目描述 小明维护着一个程序员论坛。现在他收集了一份"点赞"日志&#xff0c;日志共有 NN 行。其中每一行的格式是&#xff1a; ts idts id 表示在 tsts 时刻编号 idid 的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖…...

广告推荐算法:COSMO算法与A9算法的对比

COSMO算法与A9算法的概念解析 1. A9算法 定义与背景&#xff1a; A9算法是亚马逊早期为电商平台研发的核心搜索算法&#xff0c;主要用于优化商品搜索结果的排序和推荐&#xff0c;其核心逻辑围绕产品属性与关键词匹配展开。自2003年推出以来&#xff0c;A9通过分析商品标题…...

Java进阶之旅-day05:网络编程

引言 在当今数字化的时代&#xff0c;网络编程在软件开发中扮演着至关重要的角色。Java 作为一门广泛应用的编程语言&#xff0c;提供了强大的网络编程能力。今天&#xff0c;我们深入学习了 Java 网络编程的基础知识&#xff0c;包括基本的通信架构、网络编程三要素、IP 地址、…...

Vue 3 的响应式原理

Vue 3 的响应式原理可以比喻为“智能监控系统”&#xff1a;当数据变化时&#xff0c;它能自动追踪依赖关系并触发更新。以下是通俗解释和核心机制&#xff1a; 一、核心原理&#xff1a;Proxy 代理 Vue 3 的响应式系统基于 JavaScript 的 Proxy 对象实现&#xff08;Vue 2 使…...

Python解决“组成字符串ku的最大次数”问题

Python解决“组成字符串ku的最大次数”问题 问题描述测试样例解题思路代码 问题描述 给定一个字符串 s&#xff0c;该字符串中只包含英文大小写字母。你需要计算从字符串中最多能组成多少个字符串 “ku”。每次可以随机从字符串中选一个字符&#xff0c;并且选中的字符不能再使…...

【JS】使用滑动窗口得到无重复字符的最长子串

题目 思路 本题采用滑动窗口思想&#xff0c;定义左右指针作为滑动窗口的边界&#xff0c;使用Set数据结构处理重复字符&#xff0c;需要注意的是&#xff1a;每次遍历时采用Math.max方法实时更新最长子串的长度&#xff1b;当左指针移动时&#xff0c;set要删除对应字符。 步…...

libreoffice-help-common` 的版本(`24.8.5`)与官方源要求的版本(`24.2.7`)不一致

出现此错误的原因主要是软件包依赖冲突&#xff0c;具体分析如下&#xff1a; ### 主要原因 1. **软件源版本不匹配&#xff08;国内和官方服务器版本有差距&#xff09; 系统中可能启用了第三方软件源&#xff08;如 PPA 或 backports 源&#xff09;&#xff0c;导致 lib…...

2025-04-05 吴恩达机器学习4——逻辑回归(1):基础入门

文章目录 1 分类问题1.1 介绍1.2 线性回归与分类1.2 逻辑回归 2 逻辑回归2.1 介绍2.2 Sigmoid 函数2.3 逻辑回归模型 3 决策边界3.1 概念3.2 线性决策边界3.3 非线性决策边界 4 代价函数4.1 不使用平方误差4.2 损失函数4.3 整体代价函数 5 梯度下降5.1 参数更新5.2 逻辑回归 vs…...

P1125 [NOIP 2008 提高组] 笨小猴

#include<bits/stdc.h> using namespace std; int a[300],ma,mi105;//数组用来记录每个字符出现的次数&#xff0c;将mi初始为一个比较大的值 bool is_prime(int x){if(x0||x1)return false;for(int i2;i*i<x;i){if(x%i0)return false;}return true; }//判断是否为质…...

Linux systemd 服务全面详解

一、systemd 是什么&#xff1f; systemd 是 Linux 系统的现代初始化系统&#xff08;init&#xff09;和服务管理器&#xff0c;替代传统的 SysVinit 和 Upstart。它不仅是系统启动的“总指挥”&#xff0c;还统一管理服务、日志、设备挂载、定时任务等。 核心作用 服务管理…...

SortedSet结构之用户积分实时榜单实战

Redis 中的SortedSet结构非常适合用于实现实时榜单的场景&#xff0c;它根据成员的分数自动进行排序&#xff0c;支持高效的添加、更新和查询操作。 SortedSet实时榜单的一些典型应用场景&#xff1a; 游戏中的玩家排行榜&#xff1a;在多人在线游戏中&#xff0c;使用 Sorte…...

C++_类和对象(中)

【本节目标】 类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载const成员函数取地址及const取地址操作符重载 1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什…...

#SVA语法滴水穿石# (007)关于 $past 的用法

今天,我们要学习比较重要的一个关键字。$past 的用法,今天系统学习。 1. $past 函数的核心作用 $past 用于 获取某个信号在过去指定时钟周期前的值,通常用于检查历史状态是否符合预期。 其语法如下: $past(signal, [num_cycles], [gating_condition], [clock], [reset])…...

学习笔记—C++—入门基础()

目录 C介绍 参考文档 C第一个程序 命名空间namespace namespace的价值 namespace的定义 namespace使用 指定命名空间访问 using将命名空间中某个成员展开 展开命名空间中全部成员 输入和输出 缺省参数 函数重载 引用 引用的概念 应用 const引用 指针和引用的关…...

kotlin函数类型

一 函数类型定义 1 定义 函数类型就是 (Int, Int) -> Int 函数类型其实就是将函数的 “参数类型” 和 “返回值类型” 抽象出来 2 示例 &#xff1a; (Int, Int) -> Int 表示接收两个 Int 参数并返回 Int 的函数类型&#xff1b; (String) -> Unit 表示接收 Strin…...

大数据Spark(五十七):Spark运行架构与MapReduce区别

文章目录 Spark运行架构与MapReduce区别 一、Spark运行架构 二、Spark与MapReduce区别 Spark运行架构与MapReduce区别 一、Spark运行架构 Master:Spark集群中资源管理主节点&#xff0c;负责管理Worker节点。Worker:Spark集群中资源管理的从节点&#xff0c;负责任务的运行…...

虚拟Ashx页面,在WEB.CONFIG中不添加handlers如何运行

https://localhost:44311/webapi.ashx 虚拟ASHX页面,在WEB.CONFIG中添加handlers&#xff0c;如何不添加节点&#xff0c;直接运行?把页面直接保存ASHX名称&#xff1f;现在是.VB 如果你不想通过在 web.config 里添加 handlers 节点来配置处理程序&#xff0c;而是直接让 .as…...