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

前端(九)js介绍(2)

js介绍(2)

文章目录

  • js介绍(2)
  • 一、函数
    • 1.1函数的两种形式
    • 1.2函数的作用域
    • 1.3声明与提升
  • 二、bom操作
  • 三、dom操作

一、函数

1.1函数的两种形式

//有参函数
//js中的函数只能返回一个值,如果要返回多个需要放在数组或对象中
function func(a,b){return a+b
}
func(1,2)//匿名函数
(function(a,b){return a+b})(1,2)//arguments参数
//arguments存放传入的参数,arguments[0]为第一个参数以此类推,arguments.length表示传入的参数个数
(function(a,b){console.log(arguments[0],arguments[1],arguments.length)})(1,2)

1.2函数的作用域

js中变量的查询和python一样,先从局部找,找不到则会取上一层找以此类推直到全局为止。另外函数的作用域在函数定义阶段就已经确定了。

var city = "BeiJing";
function Bar() {console.log(city);
}
function f() {var city = "ShangHai";return Bar;
}
var ret = f();
ret(); 
<<<"BeiJing"

另外如果函数内不使用var直接定义变量,变量会被视为全局变量。

a=1
function f1(){a=100}
f1()
console.log(a)
<<<100

let定义的变量作用域会被限定在{}内。

if(true){let a=10}
console.log(a)
<<<报找不到变量a的错误

另外js中和python一样由闭包函数

var a=[]
for(var i=0;i<5;i++){function outter(x){function inner(){console.log(x)}return inner}a.push(outter(i))
}
a.forEach(function(val){val()})
<<<0
<<<1
<<<2
<<<3
<<<4

上面的闭包函数中inner函数的变量x作用域在函数定义阶段就已经确定为outter函数的形参x,而由于inner函数中引用了变量x,因此原本在outter函数运行结束就应该释放的局部变量x会保持下来,这样闭包函数就完成了将外部参数保存至内部函数的功能。

1.3声明与提升

在js中代码是从上往下一次执行的,并且js中的变量的声明会被放到作用域的顶部位置,而函数的定义与声明都会放到作用域的顶部位置。

console.log(e)
var e=11;
console.log(e)
<<<undefined
<<<11

上方代码中var e=11;包含了声明和赋值两部操作,我们可以把这段代码拆为var e;e=11;其中var e;是变量声明会被放到顶部,所有上方的代码可以等价于

var e;
console.log(e)
e=11;
console.log(e)

同样的下方代码中,函数func的定义阶段存在对变量e的赋值,因此变量e为局部变量。而var e=1;中的变量声明部分会被提升到func局部作用域的顶部,因此第一个结果为undefined,第二个结果为1。

var e=99;
function func(){console.log(e)var e=1;console.log(e)
}
func()
<<<undefined
<<<1

函数的定义和声明都会被提升到顶部

func()
function func(){console.log(111)
}
func()
<<<111
<<<111

但是以下形式的函数定义应按照变量的规则来看待

console.log(func)
var func=function(){console.log(111)
}
console.log(func)
<<<undefined
<<<ƒ (){console.log(111)}

另外如果变量和函数名重复时,函数提升的优先级是高于变量提升的

console.log(f)
function f(){console.log(111)
}
var f=10;
console.log(f)
<<<ƒ f(){console.log(111)}
<<<10

二、bom操作

BOM(Browser Object Model)浏览器对象模型,主要操作的是窗口、滚动条、弹窗等一些与浏览器直接相关的功能。下面的图片是bom与dom操作的关系。
在这里插入图片描述

//bom操作中以window开头,但是window可以省略//location相关
//跳转到某页面
window.location.href="url"
//获取当前页面url
location.href
//重新加载页面
location.reload()//history相关
//后退一页
history.back()
//前进一页
history.forward()
//刷新
history.go(0)//navigator相关
//获取Web浏览器全称
navigator.appName
//获取客户端绝大部分信息
navigator.userAgent
//获取浏览器运行所在的操作系统信息
navigator.platform//screen相关
//获取可用屏幕宽度
screen.availWidth 
//获取可用屏幕高度
screen.availHeight//弹窗相关
//弹窗
alert(1)
//确认型弹窗,确定返回true,取消返回false,但是兼容性不好
var x=confirm("你确定要这么做吗?")
console.log(x)
//输入型弹窗,兼容性不好
var username=prompt("用户名:")
console.log(username);//打开页面,_blank表示在新的浏览器页面打开,self(默认)表示当前浏览器页面打开
//close表示关闭页面
var t=window.open("http://www.baidu.com","_blank", "width=400, height=400")
t.close()//浏览器窗口内部高度
innerHeight
//浏览器窗口内部宽度
innerWidth//定时器相关
//执行一次的定时器,3000单位是ms
var s1=setTimeout(function(){alert(1)},3000)
//清除定时器
clearTimeout(s1)
//循环执行的定时器,3000单位是ms
var s2=setInterval(function(){alert(1)},3000)
//清除定时器
clearInterval(s2)

三、dom操作

Dom(Document Object Model),操作的是网页的文本内容。

//根据id获取标签,返回标签,常用
document.getElementById()
//根据类名获取标签,返回数组
document.getElementsByClassName()
//根据标签名获取标签,返回数组
document.getElementsByTagName()
//根据属性名获取标签,返回数组
document.getElementsByName()

childNodes:获取所有的子节点,标签+文本
children:获取所有元素子节点,不包含文本
parentNode:获取父标签
previousSibling:获取上一个相邻标签,标签+文本
previousElementSibling:获取上一个相邻标签,不包含文本
nextSibling:获取下一个相邻标签,标签+文本
nextElementSibling:获取下一个相邻标签,不包含文本
firstChild:获取第一个子标签,标签+文本
firstElementChild:获取第一个子标签,不包含文本
lastChild:获取最后一个子标签,标签+文本
lastElementChild:获取最后一个子标签,不包含文本

使用方法:

//获取div标签的最后一个子标签
var s1=document.getElementsByTagName('div')[0].lastChild
console.log(s1)
//创建标签
var s1 = document.createElement('div');
//在末尾插入标签
var s2=document.getElementsByTagName('div')[0].lastElementChild
s2.appendChild(s1)
//在某个标签前插入标签
var s1 = document.createElement('div');
var s2=document.getElementsByTagName('div')[0]
var s3=document.getElementsByTagName('div')[0].lastElementChild
s2.insertBefore(s1,s3)
//删除标签
var s2=document.getElementsByTagName('div')[0]
var s1=document.getElementsByTagName('div')[0].lastElementChild
s2.removeChild(s1)//替换标签
var s2=document.getElementsByTagName('div')[0]
var s1 = document.createElement('div');
var s3=document.getElementsByTagName('div')[0].lastElementChild
s2.replaceChild(s1, s3); 
var s1 = document.getElementById("d1")
//获取文本内容,包括子标签内的文本,返回字符串
s1.innerText
//获取标签,返回字符串
s1.innerHTML
//添加文本,会覆盖原本内容
s1.innerText='111'
//添加标签,会覆盖原本内容
s1.innerHTML='<p>111</p>'var s1 = document.getElementById("d1");
//设置标签属性
s1.setAttribute("age","18")
//获取标签属性
s1.getAttribute("age")
//删除标签属性
s1.removeAttribute("age")
//部分标签自带的属性可以直接赋值,例如img标签的src,input、select、textarea的value
var s1 = document.getElementsByTagName('img')[0];
s1.src=''
//获取标签值
var s1 = document.getElementsByTagName('input')[0];
s1.value//class操作
var x=document.getElementById('div1')
//增加标签类
x.classList.add('col1')
//移除标签类
x.classList.remove('col1')
//判断标签是否包含类
x.classList.contains('col1')
//标签有类则删除,无类则添加
x.classList.toggle('col1')
//直接指定标签的css样式,但是css属性需要改为驼峰体
x.style.backgroundColor="red"
x.style.margin=...
x.style.marginTop=...

事件:

onclick:点击触发
ondblclick:双击触发
onfocus:聚焦触发(如鼠标点击输入框以后)
onblur:失焦触发
onchange:内容改变触发(如form表单内容变更时)
onkeydown:键盘按键按下时触发
onkeypress:键盘按键按下并松开以后触发
onkeyup:键盘按键松开时触发
onload:页面或图片完成加载后触发
onmousedown:鼠标按下时触发
onmousemove:鼠标移动时触发
onmouseout:鼠标移开某标签时触发
onmouseover:鼠标移到某标签触发
onselect:文本框中文本被选中时触发
onsubmit:确认按钮被点击时触发,form使用

使用方法:

//方式一
<div id="div1" onclick="change(this);">点我</div>
<script>function change(this) {this.style.backgroundColor="green";}
</script>//方式二,常用
<div id="div1">点我</div>
<script>var s1 = document.getElementById('div1');s1.onclick = function() {this.style.backgroundColor = 'red';}
</script>

相关文章:

前端(九)js介绍(2)

js介绍(2) 文章目录 js介绍(2)一、函数1.1函数的两种形式1.2函数的作用域1.3声明与提升 二、bom操作三、dom操作 一、函数 1.1函数的两种形式 //有参函数 //js中的函数只能返回一个值&#xff0c;如果要返回多个需要放在数组或对象中 function func(a,b){return ab } func(1,…...

CUTLASS:高性能 CUDA 线性代数模板库详解

CUTLASS&#xff1a;高性能 CUDA 线性代数模板库详解 引言什么是 CUTLASS&#xff1f;CUTLASS 的主要特点&#xff1a; CUTLASS 的用途如何安装 CUTLASS1. 环境准备2. 下载 CUTLASS3. 构建 CUTLASS4. 设置环境变量5. 验证安装 使用 CUTLASSCUTLASS 的优势总结 引言 在深度学习…...

关于CISP报名费用详情

CISP即“注册信息安全专业人员”&#xff0c;是中国信息安全测评中心实施的国家认证项目&#xff0c;旨在培养信息安全领域的专业人才。对于有意报考CISP的考生而言&#xff0c;了解报名考试费用是备考过程中不可或缺的一环。 CISP的报名考试费用主要包括培训费用、考试费用、…...

css 关于flex布局中子元素的属性flex

css flex布局中子元素的属性flex 1. flex 是 flex-grow、flex-shrink 和 flex-basis 的简写 语法格式&#xff1a; flex: [flex-grow] [flex-shrink] [flex-basis];各属性解析&#xff1a; flex-grow: 子元素如何按比例分配父元素的 剩余空间。 默认值&#xff1a;0&#…...

功率器件热设计基础(四)——功率半导体芯片温度和测试方法

/ 前言 / 功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础&#xff0c;只有掌握功率半导体的热设计基础知识&#xff0c;才能完成精确热设计&#xff0c;提高功率器件的利用率&#xff0c;降低系统成本&#xff0c;并保证系统的可靠性。 功率器件热设计基础系列文章会…...

OpenStack系列第四篇:云平台基础功能与操作(Dashboard)

文章目录 1. 镜像&#xff08;Image&#xff09;添加镜像查看镜像删除镜像 2. 卷&#xff08;Volume&#xff09;创建卷查看卷删除卷 3. 网络&#xff08;虚拟网络&#xff09;创建网络查看网络删除网络 4. 实例类型创建实例类型查看实例类型删除实例类型 4. 密钥对&#xff08…...

WebSocket封装

提示:记录工作中遇到的需求及解决办法 文章目录 前言二、背景三、WebSocket3.1 什么是 WebSocket ?为什么使用他?四、封装 WebSocket4.1 Javascript 版本4.2 Typescript 版本4.3 如何使用?五、我的痛点如何处理前言 本文将介绍 WebSocket 的封装,比如:心跳机制,重连和一…...

面试题解,JVM的运行时数据区

一、请简述JVM运行时数据区的组成结构及各部分作用 总览 从线程持有的权限来看 线程私有区 虚拟机栈 虚拟机栈是一个栈结构&#xff0c;由许多个栈帧组成&#xff0c;一个方法分配一个栈帧&#xff0c;线程每执行一个方法时都会有一个栈帧入栈&#xff0c;方法执行结束后栈帧…...

【Ubuntu使用技巧】Ubuntu22.04无人值守Crontab工具实战详解

一个愿意伫立在巨人肩膀上的农民...... Crontab是Linux和类Unix操作系统下的一个任务调度工具&#xff0c;用于周期性地执行指定的任务或命令。Crontab允许用户创建和管理计划任务&#xff0c;以便在特定的时间间隔或时间点自动运行命令或脚本。这些任务可以按照分钟、小时、日…...

Caffeine Cache Java缓存组件

缓存组件Caffeine Cache 定义介绍整合springboot用法整合spring-boot-starter-cache用法 定义介绍 特性 高性能&#xff1a;基于高效并发设计和 TinyLFU 算法&#xff0c;命中率高。 丰富策略&#xff1a;支持容量限制、过期时间、异步加载、自定义清理策略。 统计监控&#x…...

电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

Redis核心技术知识点全集

Redis数据结构和常用命令 1. String字符串2. Hash哈希3. List列表4. Set集合5. Sorted Set有序集合6. Redis常用命令参考Redis事务机制...

【每日学点鸿蒙知识】文件读写、屏幕宽度亮度、扫一扫权限、编码器问题、wlan设置

1、参照文档&#xff0c;在操作文件时&#xff0c;读取不到内容或出现程序闪退&#xff1f; 参照文档&#xff0c;进行文件写入和读取时&#xff0c;出现读取不到或闪退 export function createFile() {// 获取应用文件路径let context getContext(this) as common.UIAbilit…...

后端开发-Maven

环境说明&#xff1a; windows系统&#xff1a;11版本 idea版本&#xff1a;2023.3.2 Maven 介绍 Apache Maven 是一个 Java 项目的构建管理和理解工具。Maven 使用一个项目对象模型&#xff08;POM&#xff09;&#xff0c;通过一组构建规则和约定来管理项目的构建&#xf…...

LiteFlow 流程引擎引入Spring boot项目集成pg数据库

文章目录 官网地址简要项目引入maven 所需jar包配置 PostgreSQL 数据库表使用LiteFlow配置 yml 文件通过 代码方式使用 liteflow数据库sql 数据在流程中周转 官网地址 https://liteflow.cc/ 简要 如果你要对复杂业务逻辑进行新写或者重构&#xff0c;用LiteFlow最合适不过。…...

电子电气架构 --- 汽车电子电器设计概述

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

API 设计:从基础到最佳实践

https://levelup.gitconnected.com/api-design-101-from-basics-to-best-practices-a0261cdf8886 在本次深入研究中&#xff0c;我们将从基础开始&#xff0c;逐步了解 API 设计&#xff0c;并逐步实现定义卓越 API 的最佳实践。 作为开发人员&#xff0c;您可能熟悉其中的许多…...

简易内存池(中)

提示&#xff1a;文章 文章目录 前言一、背景二、第二版代码用例2用例3用例4用例5 总结 前言 前期疑问&#xff1a; 本文目标&#xff1a; 一、背景 最近 二、 针对上述失败用例&#xff0c;修改代码如下 第二版代码 #include <stdbool.h> #include <stdio.h>…...

svn不能添加.a文件

解决办法 在home目录下有一个.subversion文件夹&#xff0c;文件夹内有个config文件&#xff0c;里面可以修改过滤的文件类型 在使用命令svn add的时候带上参数–no-ignore&#xff0c;这样就会不顾config中的规则&#xff0c;将指定路径的文件都添加到版本库中 rockyrocky:/e…...

PH47代码框架 24241231 重要更新

仪式感一下&#xff1a;2024年最后一天&#xff0c;发布 PH47 代码框架的一次重要更新。当然这并不是有意的&#xff0c;而是直到现在才把更新的所有工作全部做完&#xff08;希望确实如此&#xff09;。 本次更新要点&#xff1a; 1、加入多IMU支持。本次更新正式加入对 MPU65…...

小程序信息收集(小迪网络安全笔记~

免责声明&#xff1a;本文章仅用于交流学习&#xff0c;因文章内容而产生的任何违法&未授权行为&#xff0c;与文章作者无关&#xff01;&#xff01;&#xff01; 附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;…...

用户界面的UML建模07

4.2 抽象表示层的行为&#xff08;Abstract Presentation Behaviour&#xff09; AbstractForm 类定义了一组如下所示的四种操作&#xff1a; showForm() &#xff0c; getData() &#xff0c; sendConfirmation() 和sendCancellation()。在该阶段的设计过程&#xff08;desig…...

LabVIEW手部运动机能实验系统

在运动科学、人机交互和康复训练等领域&#xff0c;手部运动功能的研究具有重要的应用价值。开发了一个基于LabVIEW的手部运动机能实验系统设计&#xff0c;该系统利用力量作为关键参数&#xff0c;通过实时数据采集和反馈帮助受试者完成精确的手部动作&#xff0c;同时为研究人…...

Java Map 源码解析:核心原理与应用

Java Map 源码解析&#xff1a;核心原理与应用 Java 的 Map 接口是集合框架中一个重要的组成部分&#xff0c;专门用于存储键值对。其强大的功能和灵活的实现使其在各种应用场景中得到了广泛的使用。本文面向对 Java 集合框架有一定了解的开发者&#xff0c;通过对 Map 接口及…...

基于Mosquito源码理解MQTT5.0的属性概念

MQTT 5.0协议相比之前的版本(如MQTT 3.1.1)增加了很多属性,这些属性分布于报文的可变头部(Variable Header)和有效载荷(Payload)中。这些属性大大增强了协议的可扩展性和灵活性,使其能够更好地适应现代物联网应用的复杂需求。 属性的定义在源码包mosquitto-2.0.18/inc…...

easyui textbox使用placeholder无效

easyui textbox使用placeholder无效 在easyui 的textbox控件&#xff0c;请使用data-options 设定 示例 <input type text class easyui-textbox data-options "prompt:请输入您的邮箱"/>...

java AQS

什么是AQS AQS&#xff08;AbstractQueuedSynchronizer&#xff0c;抽象队列同步器&#xff09;是 Java 中并发控制的一种机制&#xff0c;位于 java.util.concurrent.locks 包下&#xff0c;它为构建锁、信号量等同步工具提供了一个框架。AQS 通过 队列 来管理多个线程之间的…...

机器人对物体重定向操作的发展简述

物体重定向操作的发展简述 前言1、手内重定向和外部重定向2、重定向原语3、重定向状态转换网络4、连续任意姿态的重定向5、利用其他环境约束重定向总结Reference 前言 对于一些特殊的任务&#xff08;如装配和打包&#xff09;&#xff0c;对物体放置的位姿由明确的要求&#…...

数据结构与算法之动态规划: LeetCode 72. 编辑距离 (Ts版)

编辑距离 https://leetcode.cn/problems/edit-distance/description/ 描述 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 示例 1 输入&…...

vue3 Teleport瞬移组件

Teleport是瞬移组件&#xff0c;也称为传送门组件 它是一个可以使元素从一个组件转到另一个组件的组件。 如对话框、自定义菜单、警告提示、徽章&#xff0c;以及许多其他需要出现在特殊位置的自定义UI组件。假设现在页面中有两个元素&#xff0c;分别为div元素和button按钮元…...

Go语言学习路线

以下是一个较为系统的Go语言学习路线&#xff1a; 一、基础阶段 环境搭建与工具链熟悉 安装Go语言开发环境。在Go官方网站&#xff08;https://golang.org/dl/&#xff09;下载适合您操作系统的安装包并完成安装。 配置Go环境变量&#xff0c;如GOPATH和GOROOT。GOROOT是Go语…...

摄像头监视脚本

摄像头监视脚本&#xff0c;若检测到摄像头画面有变化&#xff0c;保存这一段视频 一、使用方法 1.运行脚本 默认参数Threshold3, Period3, path./recordings python cam.py --threshold30 --period3 --path./recordings 2.参数说明 threshold:摄像头捕获到的画面变化量阈值…...

【Leecode】Leecode刷题之路第97天之交错字符串

题目出处 97-交错字符串-题目出处 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 97-交错字符串-官方解法 方法1&#xff1a;动态规划 思路&#xff1a; class Solution {public boolean isInte…...

MAC环境安装(卸载)软件

MAC环境安装&#xff08;卸载&#xff09;软件 jdknode安装node&#xff0c;并实现不同版本的切换背景 卸载node从node官网下载pkg安装的node卸载用 homebrew 安装的node如果你感觉删的不够干净&#xff0c;可以再细分删除验证删除结果 jdk 1.下载jdk 先去官网下载自己需要的版…...

Spring Boot + Redisson 封装分布式锁

目标&#xff1a;一行代码调用&#xff0c;简单粗暴。 基操&#xff1a;自动加锁&#xff0c;自动解锁&#xff0c;自动处理异常&#xff0c;自动处理锁超时等。 安装 redis redisson <dependency><groupId>org.springframework.boot</groupId><artifac…...

从零开发一套UWB定位系统需要多长时间?UWB超宽带定位系统源码

从零开发一套UWB定位系统需要多长时间&#xff1f; 从零开发一套UWB定位系统所需的时间会受到多种因素的影响&#xff0c;以下是详细分析&#xff1a; 一、系统复杂度 1、基本功能定位系统 如果只是开发一个简单的UWB定位系统&#xff0c;仅实现基本的定位功能&#xff0c;如在…...

DataCap 2024.4.1 版本发布:MongoDB 驱动支持、工作流引擎升级

尊敬的 DataCap 用户&#xff1a; DataCap 2024.4.1 版本现已正式发布。本次更新包含多项重要功能升级和性能优化&#xff0c;现将主要更新内容公布如下&#xff1a; 核心功能升级 数据库功能增强 (实现功能) 新增数据库管理功能&#xff1a;支持创建、删除和切换数据库完善表…...

常见端口(22、25、53、80、443、110、143、3306、6379、21)和服务的安装与配置手册

文章目录 一、系统初始设置1. 系统与工具的基础配置1.1 系统更新1.2 网络连接测试1.3 工具安装 2. 防火墙配置2.1 启用防火墙服务2.2 检查默认规则2.3 开放常用端口2.4 查看已开放端口 二、常见端口及其用途1. 端口 22&#xff08;SSH&#xff09;2. 端口 25&#xff08;SMTP&a…...

使用maven-mvnd替换maven大大提升编译打包速度

先上结论&#xff01;&#xff01;&#xff01; 多模块清理并打包提升&#xff1a;约3.5倍 多模块不清理打包提升&#xff1a;约5.5倍 单模块提升&#xff1a;约2倍 从计算结果来看&#xff0c;多模块提升的效率更高。在使用mvnd package打包多模块式&#xff0c;可在控制台…...

图像去雾 | 基于Matlab的图像去雾系统(四种方法)

图像去雾 | 基于Matlab的图像去雾系统&#xff08;四种方法&#xff09; 目录 图像去雾 | 基于Matlab的图像去雾系统&#xff08;四种方法&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于Matlab的图像去雾系统&#xff08;四种方法&#xff09; 关于图像…...

【Ubuntu 系统 之 开启远程桌面SSH登录】

【Ubuntu 系统 之 开启远程桌面&SSH登录】 一、开启 SSH 登录二、开启远程桌面1、更新包管理器并安装 xrdp1.1、遇到错误1.2、解决方法 2、安装桌面环境&#xff08;如果服务器上没有 GUI&#xff09;3、配置 xrdp 使用默认的 GNOME 桌面环境4、配置防火墙允许远程桌面连接…...

利用 AI 生成 XMind 思维导图教程

本文将介绍如何使用 AI 工具&#xff08;如 ChatGPT 等&#xff09;&#xff0c;从无到有生成层次分明、可直接导入到 XMind 的 Markdown 格式思维导图。主要步骤包括&#xff1a;选择主题、编写并润色 Markdown 文档、在 XMind 中进行导入与可视化。 一、为什么使用 AI XMind…...

电子应用设计方案81:智能AI冲奶瓶系统设计

智能 AI 冲奶瓶系统设计 一、引言 智能 AI 冲奶瓶系统旨在为父母或照顾者提供便捷、准确和卫生的冲奶服务&#xff0c;特别是在夜间或忙碌时&#xff0c;减轻负担并确保婴儿获得适宜的营养。 二、系统概述 1. 系统目标 - 精确调配奶粉和水的比例&#xff0c;满足不同年龄段婴…...

MySQL的索引

没有索引会怎么样 数据库中的数据最终是存储在磁盘上的。 mysql服务器&#xff0c;本质上是内存进程&#xff0c;CURD操作全都是在内存中进行的—索引也是如此。 所以&#xff0c;需要将数据从磁盘读进内存&#xff0c;才能进行操作。 如果没有索引&#xff0c;表中的数据会向…...

Pytest 高级用法:间接参数化

文章目录 1. 引言2. 基础概念2.1 Fixture2.2 参数化 3. 代码实例3.1 基础设置3.2 测试用例示例示例 1&#xff1a;基础的间接参数化示例 2&#xff1a;通过 request 获取参数值示例 3&#xff1a;多参数组合测试示例 4&#xff1a;部分间接参数化 4. 最佳实践5. 总结参考资料 1…...

基于视觉语言模型(VLM)的CogAgent

前言 CogAgent 是由清华大学与智谱AI联合推出的一个多模态大模型&#xff0c;专注于图形用户界面&#xff08;GUI&#xff09;的理解和导航。它代表了在视觉语言模型&#xff08;VLM&#xff09;领域的一项重要进展&#xff0c;特别是在GUI Agent能力方面。相较于传统的基于文…...

文件传输工具FTransferor<优化篇>

在上一篇文章中&#xff0c;我们详细探讨了FTransferor文件传输工具的设计与实现&#xff0c;并展示了它在局域网文件传输方面的高效性。然而&#xff0c;随着互联网应用场景的不断丰富&#xff0c;传统的基于 TCP/UDP 的传输方式已经无法满足部分开发者的需求。特别是在跨平台…...

【Linux】Centos7下载npm

Index of /dist/v16.20.2/ (nodejs.org) 下载 wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.gz解压 sudo tar -zxvf node-v16.20.2-linux-x64.tar.gz 配置环境变量 sudo vim /etc/profile export NODE_HOME/usr/local/node-v16.20.2-linux-x64 ex…...

Spring boot + Hibernate + MySQL实现用户管理示例

安装MySQL Windows 11 Mysql 安装及常用命令_windows11 mysql-CSDN博客 整体目录 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLS…...

Neo4j GDS 2.0 安装与配置

Neo4j GDS 2.0 安装与配置 GDS插件安装&#xff1a;Neo4j官方文档 1. GDS简介 Neo4j Graph Data Science (GDS) 库作为 Neo4j Graph Database 的插件提供。该插件需要安装到数据库中并在 Neo4j 配置中列入白名单。有两种主要方法可以实现这一点&#xff0c;我们将在本章中详…...