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

JavaScript入门【2】语法基础

1.JavaScript的引⼊⽅式(使用):

1.方式1:行内引用:

 此种方式是将<font style="color:rgb(38,38,38);">JavaScript代码作为HTML标签的属性值使⽤,示例如下:</font>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<a href="javascript:alert('警告')">点击弹窗</a>
</body>
</html>      

上面案例中是将javascript代码作为了html文档的超链接标签的属性值使用,测试结果如下:

当点击该超链接时,浏览器就会出现警告弹窗;

2.方式2:标签引用:

此方式是在html文档中添加script标签,在script标签中编写javascript代码,示例如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">window.alert("警告")</script></body>
</html>
在上面代码中,在html文档中添加了script的标签,并声明此标签的type属性为text/javascript,在标签中我们通过浏览器窗口对象window的alert方法向用户展示了一个警告弹窗,运行结果如下:

3.方式3:文件引用:

 此方式是通过创建一个javascript的文件,在此文件中编写代码,然后在html文档中引用该文件,实现JavaScript的功能;
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script src="index.js"></script></body>
</html> 
    引用js文件index.js内容如下**(js文件中直接编写代码,不加标签**):

测试结果如下:

2.JavaScript的输出:

某些情况下,我们需要将程序的运⾏结果输出到浏览器中,JavaScript为我们提供了多种不同形式输出内容:

  • 使⽤ window.alert() 函数弹出提示框
  • 使⽤ window.confirm() 函数弹出对话框
  • 使⽤ window.prompt() 函数弹出可以让⽤户输⼊的提示框
  • 使⽤ console.log() 在浏览器的控制台输出内容
  • 使⽤ document.write() ⽅法将内容写⼊到HTML⽂档中

1.window.alert():无返回值

此方式主要是在浏览器中弹出提示框,在上面我们演示JavaScript的使用时,就是通过这种方式;

 alert("come on的喂,abc~");

输出结果展示:

2.window.confirm():返回值为boolean

  • JavaScript中的 confirm() 函数与 alert() 函数相似,同样可以在浏览器窗⼝弹出⼀个提示框

  • 使⽤ confirm() 函数创建的提示框中,包含了“确定”和“取消”两个按钮

  • 点击“确定”按钮, confirm() 函数返回⼀个布尔值 true ;点击“取消”按钮,返回⼀个布尔值false

confirm("确定删除吗?");

测试结果:

3. window.prompt():返回值为string或者null

  • 使⽤JavaScript中的 prompt() 函数可以弹出提示框,该提示框可以让⽤户输⼊信息。

  • 该函数返回⽤户输⼊的字符串

prompt("请输入密码:");

测试结果:

4.console.log():无返回值

  1. <font style="color:rgb(38,38,38);">使⽤JavaScript中的 console.log() 可以在浏览器的控制台输出信息,我们通常使⽤ console.log() 来调试程序</font>
    
  2. <font style="color:rgb(38,38,38);">  控制台的其他打印信息如下所示:</font>
    
  • console.info(“输出信息”);
  • console.warn(“输出警告”);
  • console.error(“输出异常”);
  1. window.alert() 和 window.confirm() 可以分别简写成 alert() 和 confirm() 不同, console.log() 不能简写
  2. 要看到 console.log() 的输出内容需要先打开浏览器的控制台,打开⽅式有两种:
  • 在浏览器窗⼝按 F12 快捷键,在控制台中选择" Console "或“ 控制台 ”选项;
  • 点击⿏标右键,在弹出菜单中选择“ 检查 ”选项,在控制台中选择" Console "或“ 控制台 ”选项 ;

 console.log("控制台打印输出")

测试结果:

5.方式5:document.write():无返回值

<font style="color:rgb(38,38,38);">使⽤JavaScript中的 document.write() 可以向HTML⽂档中写⼊HTML或者JavaSctipt代码,可直接将写入内容展示到浏览器页面上;</font>
document.write('hello world')  

测试结果:

3.代码编写规范:

1. 代码位置:

JavaScript必须出现在以 .js 作为后缀名的⽂件中,或者出现在 html ⻚⾯的

2. 代码分段:

  • 每⼀⾏JavaScript代码描述⼀个⾏为/动作,结束时由分号 ; 结尾。以 回⻋ 作为换⾏符,⽤来描述下⼀个⾏为/动作。
  • 如果每⼀条语句结束时不加分号,浏览器会⾃动补上分号,但是会消耗⼀部分系统资源。
  • JavaScript中会忽略多个空格和换⾏。

3. 字符串 :

JavaScript中的字符串需要包裹在 英⽂输⼊法格式 下的 单引号或双引号中。

4. 代码⼤⼩写:

在JavaScript中严格区分⼤⼩写;

4.JavaScript代码执⾏顺序:

1.概述:

  • <font style="color:rgb(68,68,68);">浏览器在解析 HTML ⽂档时,将根据⽂档流从上到下逐⾏解析和显示。 JavaScript 代码也是HTML ⽂档 的组成部分,因此 JavaScript 脚本的执⾏顺序也是根据 <script> 标签 的位置 来确定的。 </font>
    
  • <font style="color:rgb(68,68,68);">   通常建议将JavaScript代码放在⽂档的最后部分。</font>
    
<!DOCTYPE html>
<script>alert("顶部脚本");
</script>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<script>alert("头部脚本");
</script>
<body><h1>猿究院官⽹</h1><script>alert("⻚⾯脚本");</script><p>正⽂内容</p>
</body>
<script>alert("底部脚本");
</script>
</html> 

2.图解:

5.JavaScript注释:不具备文档注释

注释是给开发⼈员看的,程序在执⾏时会⾃动忽略注释的内容,所以我们通常使⽤注释来为代码添加⼀些解释说明或描述,以提⾼代码的可读性。

JavaScript注释分为 单⾏注释 和 多⾏注释 两种,具体格式如下:

1.单行注释:

<font style="color:rgb(38,38,38);">单⾏注释是以双斜杠 // 开头, // 之后本⾏所有内容都会被看作是注释的内容,对 // 之前的内容则不会产⽣影响,示例如下:</font>
<script>//document表示⽹⻚⽂档对象;document.write()表示调⽤document对象的write()⽅法document.write("<h1>JavaScript注释</h1>")
</script> 

2.多行注释:

  <font style="color:rgb(68,68,68);">多⾏注释以 /* 开头,并以 */ 结尾,出现在 /* 和 */ 之间的所有内容都会看作是注释的内容,示例代码如下:</font>
<script>/* document表示⽹⻚⽂档对象;document.write()表示调⽤document对象的write()⽅法 */document.write("<h1>JavaScript注释</h1>")
</script>  

6.标识符:

1.概述:

标识符指JavaScript中的变量名,属性名,方法名,函数名,参数名等;

2.命名规则:同java中的命名规则一致

  •    1.第一个字母必须是字母、下划线_、美元符号$
    
  •    2.其他字母可以是字母、下划线_、美元符号$、数字
    
  •    3.ECSMScript 惯例采用 驼峰命名
    
  •    4.不能是关键字 或者 保留字
    

7.字面量与变量:

1.字面量:

概述:

           就是固定值,不发生变化;

举例:

sum = 1 + 1;其中的'1'就是字面量,不发生变化;

2.变量:

概述:

  •          给一个值 或者对象 标注了名称,即为变量;
    
  •          在代码执行过程中JavaScript中的变量的类型可发生改变,而在Java中一旦声明了一个变量,此变量的类型是一般是不可变的;
    

变量声明及初始化:

方式1:直接申明变量及初始化(不常用)
   a = 3;  console.log(a);  

测试结果:

方式2:通过var关键字申明及初始化:(不常用)
通过此关键字可以申明多个相同名称的变量,但前面的值会被后面的值覆盖;
<script>var a=3;var a=4;var a=5;console.log(a);</script>  

测试结果:

方式3:通过let关键字声明及初始化:

通过此方式声明变量时,变量名不可重复,否则会报错

<script>let a=3;let a=4;let a=5;console.log(a);</script>

测试结果:

<script>let a='变量a';let b='变量b';console.log(a,b);</script>

注意事项:

**声明的变量必须初始化后才能使用**,否则会出现undefined错误
<script>let a;console.log(a);</script>

8.数据类型:

1.基本数据类型:

       在js中基本数据类型分别有以下几种:
  •   字符串 String:
    
  •   数值 Number:(不区分整型和浮点数)  Infinity:正无穷   -Infinity:负无穷   NaN 非法数字
    
  •   布尔 Boolean: true----false
    
  •   undefined(undefined):<font style="color:rgba(0, 0, 0, 0.85);">表示变量声明但尚未赋值</font>
    
  •   null (Null 对象):<font style="color:rgba(0, 0, 0, 0.85);">表示一个空值,通常用于表示有意缺少对象值;</font>
    

2.对象:除上面几种类型之外都是对象类型(引用类型)

3.unfined与null的区别:

本质含义:

- `**undefined**`:表示变量已声明但未赋值,或者函数没有明确返回值的返回结果,是一种 “未定义” 的状态。
- `**null**`:代表一个空值,用于有意表示对象值的缺失,是一种 “空” 的概念。

2.类型检测差异:

- `**typeof**`**操作符**:* `typeof undefined`返回`"undefined"`,能直接识别`undefined`。* `typeof null`返回`"object"`,这是历史遗留问题,不能准确反映`null`的真实类型。
- **精准类型判断方法(如**`**Object.prototype.toString.call()**`**)**:* 可以准确区分,`Object.prototype.toString.call(undefined)`返回`"[object Undefined]"`,`Object.prototype.toString.call(null)`返回`"[object Null]"`。

3.应用场景差异:

- **变量初始化方面**:* 变量刚声明还没赋值时为`undefined`。* 当需要表示对象不存在或被清空时,使用`null`赋值给相关变量。
- **函数参数方面**:* 未设置默认值的函数参数,未传入时在函数内为`undefined`。* `null`作为函数参数可用于表示特殊的、与`undefined`不同的空状态。

4.对逻辑判断的影响:

- **条件判断中的假值情况**:* `undefined`和`null`在条件判断中都被视为假值。* 但在精确区分时,要使用`===`严格相等判断,因为`undefined == null`为`true`(宽松相等比较),`undefined === null`为`false`(严格相等比较)。

4.数据类型的查看:

1.typeof:

可以通过运算符** typeof** 来检查当前值或变量的类型

    <script>console.log(typeof 1); // Numberconsole.log(typeof 'Hello'); // string  ``(模板字符串),'', "" 都是字符串console.log(typeof true); //booleanconsole.log(typeof undefined); // undefinedconsole.log(typeof null);// Object null 对象</script>

2.模板字符串:

 <font style="color:rgba(0, 0, 0, 0.85);">模板字符串是一种在 JavaScript 中方便创建多行字符串以及嵌入表达式的语法。</font>
<script>let li1 = "列表项目1";//模板字符串let  str = `<ul><li>${li1}</li></ul>`;console.log(str)</script>

以反引号开始和结束,在这个例子中,它构建了一个包含无序列表(

  • )的HTML结构,用于换行输出模板类对象str的内容

9.JavaScript中的转义符:

1.概述:

 在JavaScript中通常使用'\'来对特殊含义的字符进行转义
  •     \n 换行:表示换行,在前面再加一个反斜杠表示输出'\n'字符串
    
  •     \\ 斜杠:单个'\'表示转义符,两个则表示输出'\'
    
  •     \t 制表:表示制表符,再加一个反斜杠表示输出'\t'
    
  •     \b 空格:表示生成空格
    
  •     \' 单引号:表示输出单引号
    
  •     \" 双引号:表示输出双引号
    
  •     \r 回车:回车,也表示换行
    

2.案例:

 console.log("\" hello\bworld");console.log("\" hello\tworld");    

10.数据类型转换:

1.转String:

1.数字转String:

方式1:toString();
let num = 123;console.log(typeof num);
num=ToString(num);console.log(typeof num);

方式2:String():
 let num = 123;console.log(typeof num);
num=String(num);console.log(typeof num);

方式3:字符串拼接
  let num = 123;console.log(typeof num);
num=num+"";console.log(typeof num);

2.其他类型转字符串:和上面方式类似

2.转数字:

1.字符串转数字:

  •    **如果字符串中有非数字字符,则转换后会出现NaN非法数字**
    
  •    **       如果字符串为空,或者为空格,则转换后全为0;**
    
方式1:使用Number()
<script>let num = "12.6";console.log(typeof num);num = Number(num);console.log(typeof num);</script>   

方式2:parseInt或parseFloat方法:
<script>let num = "12.6";console.log(typeof num,num);num = parseFloat(num);console.log(typeof num,num);</script>     

<script>let num = "12.6";console.log(typeof num,num);num = parseInt(num);console.log(typeof num,num);</script>     

特殊场景模拟:
字符串中有除数字外的其他字符,则转换后会出现转换异常,出现非法数字
<script>let num = "12a6";console.log(typeof num,num);num = Number(num);console.log(typeof num,num);</script>   

字符串为空或为空格,转换后为0;
<script>let num1 = "";let num2 = "  ";console.log(typeof num1,num1);console.log(typeof num2,num2);num1 = Number(num1);num2 = Number(num2);console.log(typeof num1,num1);console.log(typeof num2,num2);</script>   

2.布尔类型转数字:

布尔类型转数字,true转换后为1,false转换后为0;

<script>let num1 = true;let num2 = false;console.log(typeof num1,num1);console.log(typeof num2,num2);num1 = Number(num1);num2 = Number(num2);console.log(typeof num1,num1);console.log(typeof num2,num2);</script>   

3.undefined类型转数字:

undefined类型转成数字后为非法数字NaN
<script>let num1 = undefined;console.log(typeof num1,num1);num1 = Number(num1);console.log(typeof num1,num1);</script>   

4.null类型转成数字:

null类型转成数字后为0

<script>let num1 =null;console.log(typeof num1,num1);num1 = Number(num1);console.log(typeof num1,num1);</script>

3.转成boolean:通过Boolean()

1.数字转boolean:

数字中除了0和NaN转成boolean为false,其他的都为true;

 <script>let num1 = 1;let num2 = 0;console.log(typeof num1,num1);console.log(typeof num2,num2);num1 = Boolean(num1);num2 = Boolean(num2);console.log(typeof num1,num1);console.log(typeof num2,num2);</script>    

2.字符串转Boolean:

除了空字符串,剩下的都为true

 <script>let num1 = "";let num2 = "  ";console.log(typeof num1,num1);console.log(typeof num2,num2);num1 = Boolean(num1);num2 = Boolean(num2);console.log(typeof num1,num1);console.log(typeof num2,num2);</script>    

3.undefined和null转成boolean:

  undefined和null转成boolean都为false
 <script>let num1 = undefined;let num2 = null;console.log(typeof num1,num1);console.log(typeof num2,num2);num1 = Boolean(num1);num2 = Boolean(num2);console.log(typeof num1,num1);console.log(typeof num2,num2);</script>    

4.转undefined和null:直接用=赋值即可

11.运算符:

1.类型检验运算符:typeof

     用来检验变量或值得类型

2.算数运算符:+ ,- ,*, /, %, ++, –

       注意++/--得位置不同,其含义也不同(参考java中的规则)
     let a = 1;console.log(++a);  //先加再输出

     let a = 1;console.log(a++);  //先输出再加

3.关系运算符:>, < , >= ,<=

4.赋值运算符:= , += , -=, *= , /= , %=

5.比较运算符:== , !=, =(全等于) , !

6.逻辑运算符:&&(&) ,||(|) ,!

12.流程控制:

1.选择结构:

1.if选择:

1.if选择:
<script>if(布尔表达式){........}</script>   
2.if-else选择:
 <script>if(布尔表达式){........}else{........}</script>     
3.if-else if-else选择:
 <script>if(布尔表达式1){........}else if(布尔表达式2){........}........{}else{.........}</script>      

2.switch选择:注意使用break,防止执行穿透

switch(值/表达式){case 值1:.....break;case 值2:.....break;..........default:........
}
let month = 10;switch (month) {default:console.log("输入错误 ")break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:console.log("31天")break;case 4:case 6:case 9:case 11:console.log("30天");break;case 2:console.log("28天");break;}  

2.循环结构:

1.while循环:布尔表达式成立时执行循环体

while(布尔表达式){
...............
}

2.do-while循环:先执行后判断

do{
.......
}while(布尔表达式)

3.for循环:

for (let i = 0; i < 5; i++) {.....}

4.foreach:

let numbers = [1, 2, 3, 4, 5];
numbers.forEach(function (element) {console.log(element);
});

5.for -in:适用于遍历对象

for (const arrayKey in array) {......  }

相关文章:

JavaScript入门【2】语法基础

1.JavaScript的引⼊⽅式(使用): 1.方式1:行内引用: 此种方式是将<font style"color:rgb(38,38,38);">JavaScript代码作为HTML标签的属性值使⽤,示例如下:</font><html lang"en"> <head><meta charset"UTF-8"><…...

调用DeepSeek系列模型问答时,输出只有</think>标签,而没有<think>标签

问题&#xff1a;调用DeepSeek系列模型问答时&#xff0c;输出结果缺少只有标签&#xff0c;而没有标签&#xff1f; DeepSeek官方有关说明 这里设置成这样是为了保证让模型的生成是以"<think>\n"开头的&#xff0c;然后开始思考过程&#xff0c;避免模型没…...

python:gimp 与 blender 两个软件如何协作?

GIMP&#xff08;GNU Image Manipulation Program&#xff09;和 Blender 是两个不同领域的开源工具&#xff0c;但它们在数字创作流程中常协同使用&#xff0c;以下是它们的主要联系和互补性&#xff1a; 1. 功能互补&#xff1a;2D 与 3D 的结合 GIMP 是专业的 2D 图像处理工…...

MMDetection环境安装配置

MMDetection 支持在 Linux&#xff0c;Windows 和 macOS 上运行。它需要 Python 3.7 以上&#xff0c;CUDA 9.2 以上和 PyTorch 1.8 及其以上。 MMDetection 至今也一直更新很多个版本了&#xff0c;但是对于最新的pytorch版本仍然不支持&#xff0c;我安装的时候仍然多次遇到m…...

【springboot+vue3的前后端分离项目实现支付宝的沙箱支付】

【springbootvue3的前后端分离项目实现支付宝的沙箱支付】 以下是基于SpringBoot Vue前后端分离项目实现支付宝沙箱支付的完整解决方案&#xff0c;包含关键代码和调试技巧 一、项目架构设计 二、后端实现&#xff08;SpringBoot&#xff09; 1. 添加依赖 <!-- pom.xml…...

基于Llama3的开发应用(二):大语言模型的工业部署

大语言模型的工业部署 0 前言1 ollama部署大模型1.1 ollama简介1.2 ollama的安装1.3 启动ollama服务1.4 下载模型1.5 通过API调用模型 2 vllm部署大模型2.1 vllm简介2.2 vllm的安装2.3 启动vllm模型服务2.4 API调用 3 LMDeploy部署大模型3.1 LMDeploy简介3.2 LMDeploy的安装3.3…...

MySQL只操作同一条记录也会死锁吗?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL只操作同一条记录也会死锁吗?】面试题。希望对大家有帮助&#xff1b; MySQL里where条件的顺序影响索引使用吗&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在MySQL中&#xff0c;死锁通常发生在多…...

Linux的静态库 共享库 进程 主函数的参数

1、库文件 库文件 库是一组预先编译好的方法的集合&#xff1b; Linux系统储存的位置一般在/lib和/usr/lib中 库的头文件放在/usr/include 库分类&#xff1a;静态库&#xff08;libxxx.a&#xff09;共享库&#xff08;libxxx.so&#xff09; 静态库 &#xff08;1&#…...

软件设计师考试结构型设计模式考点全解析

结构型设计模式考点全解析 一、分值占比与考察趋势分析&#xff08;75分制&#xff09; 设计模式近5年平均分值考察频率趋势分析适配器模式3-5分高频保持稳定桥接模式2-3分中频略有上升组合模式4-6分高频持续重点装饰器模式3-4分高频稳定考察代理模式5-7分高频逐年增加外观模…...

Java-Objects类高效应用的全面指南

Java_Objects类高效应用的全面指南 前言一、Objects 类概述二、Objects 类的核心方法解析2.1 requireNonNull系列方法&#xff1a;空指针检查的利器2.2 equals方法&#xff1a;安全的对象比较2.3 hashCode方法&#xff1a;统一的哈希值生成2.4 toString方法&#xff1a;灵活的对…...

PostGIS实现栅格数据入库-raster2pgsql

raster2pgsql使用与最佳实践 一、工具概述 raster2pgsql是PostGIS提供的命令行工具,用于将GDAL支持的栅格格式(如GeoTIFF、JPEG、PNG等)导入PostgreSQL数据库,支持批量加载、分块切片、创建空间索引及金字塔概览,是栅格数据入库的核心工具。 二、核心功能与典型用法 1…...

专题四:综合练习(组合问题的决策树与回溯算法)

以leetode77题为例 题目分析&#xff1a; 给一个数字n&#xff0c;你可以在1到n中选k个数字进行组合&#xff0c;注意包括1和n&#xff0c;而且通过观察实例 1&#xff0c;2和2&#xff0c;1是一样的&#xff0c;所以我们画决策树的时候&#xff0c;只需要从当前位置往后列举…...

从神经架构到万物自动化的 AI 革命:解码深度学习驱动的智能自动化新范式

目录 一、深度学习与 AI 自动化概述 二、深度学习核心技术解析 2.1 常见深度学习架构 2.2 关键算法 三、AI 自动化实践案例 3.1 图像分类自动化 3.2 自然语言处理自动化 —— 文本情感分析 ​编辑 五、自动化系统设计与实现 5.1 端到端自动化框架 5.2 自动化测试框架…...

3.5/Q1,GBD数据库最新文章解读

文章题目&#xff1a;Burden, trends, projections, and spatial patterns of lip and oral cavity cancer in Iran: a time-series analysis from 1990 to 2040 DOI&#xff1a;10.1186/s12889-025-22202-8 中文标题&#xff1a;伊朗唇癌和口腔癌的负担、趋势、预测和空间模式…...

智慧校园(含实验室)智能化专项汇报方案

该方案聚焦智慧校园(含实验室)智能化建设,针对传统实验室在运营监管、环境监测、安全管控、排课考勤等方面的问题,依据《智慧校园总体框架》等标准,设计数字孪生平台、实验室综合管理平台、消安电一体化平台三大核心平台,涵盖通信、安防、建筑设备管理等设施,涉及 395 个…...

玩转 AI · 思考过程可视化

玩转 AI 思考过程可视化 我们在开发 AI 的思维链 / 处理流时&#xff0c;难免遇到耗时较长的流程&#xff0c;如果遇到处理过慢的&#xff0c;用户什么也看不到可能丧失使用兴趣&#xff0c;对于这种情况&#xff0c;一个巧妙的产品思维就是呈现处理进度。 示例 其实完成这个页…...

hysAnalyser 从MPEG-TS导出ES功能说明

摘要 hysAnalyser 是一款特色的 MPEG-TS 数据分析工具。本文主要介绍了 hysAnalyser 从MPEG-TS 中导出选定的 ES 或 PES 功能(版本v1.0.003)&#xff0c;以便用户知悉和掌握这些功能&#xff0c;帮助分析和解决各种遇到ES或PES相关的实际问题。hysAnalyser 支持主流的MP1/MP2/…...

[YOLO模型](4)YOLO V3的介绍

文章目录 YOLO V3一、模型思想二、模型性能三、改进的地方1. 三种scale2. scale变换经典方法3. 残差连接4. 核心网络架构(1) 结构(2) 输出与先验框关系 5. Logistic分类器替代Softmax 四、总结 YOLO V3 一、模型思想 作者 Redmon 又在 YOLOv2 的基础上做了一些改进&#xff1a…...

期望是什么:(无数次的均值,结合概率)21/6=3.5

https://seeing-theory.brown.edu/basic-probability/cn.html 期望是什么:(无数次的均值,结合概率)21/6=3.5 一、期望(数学概念) 在概率论和统计学中,**期望(Expectation)**是一个核心概念,用于描述随机变量的长期平均取值,反映随机变量取值的集中趋势。 (一…...

Stacking(堆叠):集成学习中的“超级英雄团队”

在机器学习的世界里&#xff0c;如果要找一个类似漫威“复仇者联盟”的存在&#xff0c;那么**Stacking&#xff08;堆叠&#xff09;**无疑是最佳候选人。就像钢铁侠、美国队长和雷神各自拥有独特的能力&#xff0c;但只有当他们组队时才能发挥出惊人的战斗力&#xff0c;Stac…...

手写tomcat:基本功能实现(3)

TomcatRoute类 TomcatRoute类是Servlet容器&#xff0c;是Tomcat中最核心的部分&#xff0c;其本身是一个HashMap&#xff0c;其功能为&#xff1a;将路径和对象写入Servlet容器中。 package com.qcby.config;import com.qcby.Util.SearchClassUtil; import com.qcby.servlet…...

nt!MiRemovePageByColor函数分析之脱链和刷新颜色表

第0部分&#xff1a;背景 PFN_NUMBER FASTCALL MiRemoveZeroPage ( IN ULONG Color ) { ASSERT (Color < MmSecondaryColors); Page FreePagesByColor[Color].Flink; if (Page ! MM_EMPTY_LIST) { // // Remove the first entry on the zeroe…...

时间筛掉了不够坚定的东西

2025年5月17日&#xff0c;16~25℃&#xff0c;还好 待办&#xff1a; 《高等数学1》重修考试 《高等数学2》备课 《物理[2]》备课 《高等数学2》取消考试资格学生名单 《物理[2]》取消考试资格名单 职称申报材料 2024年税务申报 5月24日、25日监考报名 遇见&#xff1a;敲了一…...

3D个人简历网站 4.小岛

1.模型素材 在Sketchfab上下载狐狸岛模型&#xff0c;然后转换为素材资源asset&#xff0c;嫌麻烦直接在网盘链接下载素材&#xff0c; Fox’s islandshttps://sketchfab.com/3d-models/foxs-islands-163b68e09fcc47618450150be7785907https://gltf.pmnd.rs/ 素材夸克网盘&a…...

第十一课 蜗牛爬树

上次作业 同学们课后可以尝试找一下30以内&#xff0c;哪个整数有最多的因数呢&#xff1f; 这个整数有多少个因数呢&#xff1f; 最好使用程序来进行判断哦 int main() {int max_num 1; // 记录因数最多的数int max_count 1; // 记录最大因数个数for (int num 2; num <…...

字体样式集合

根据您提供的字体样式列表&#xff0c;以下是分类整理后的完整字体样式名称&#xff08;不含数量统计&#xff09;&#xff1a; 基础样式 • Regular • Normal • Plain • Medium • Bold • Black • Light • Thin • Heavy • Ultra • Extra • Semi • Hai…...

Spring MVC 如何处理文件上传? 需要哪些配置和依赖?如何在 Controller 中接收上传的文件 (MultipartFile)?

Spring MVC 处理文件上传主要依赖于 MultipartResolver 接口及其实现。最常用的实现是 CommonsMultipartResolver&#xff08;基于 Apache Commons FileUpload&#xff09;和 StandardServletMultipartResolver&#xff08;基于 Servlet 3.0 API&#xff09;。 以下是如何配置…...

探索C++对象模型:(拷贝构造、运算符重载)成员函数的深度解读(中篇)

前引&#xff1a;在C的面向对象编程中&#xff0c;对象模型是理解语言行为的核心。无论是类的成员函数如何访问数据&#xff0c;还是资源管理如何自动化&#xff0c;其底层机制均围绕两个关键概念展开&#xff1a;拷贝复制、取地址重载成员函数。它们如同对象的“隐形守护者”&…...

[逆向工程]C++实现DLL注入:原理、实现与防御全解析(二十五)

[逆向工程]C实现DLL注入&#xff1a;原理、实现与防御全解析&#xff08;二十五&#xff09; 引言 DLL注入&#xff08;DLL Injection&#xff09;是Windows系统下实现进程间通信、功能扩展、监控调试的核心技术之一。本文将从原理分析、代码实现、实战调试到防御方案&#x…...

gcc/g++常用参数

1.介绍 gcc用于编译c语言&#xff0c;g用于编译c 源代码生成可执行文件过程&#xff0c;预处理-编译-汇编-链接。https://zhuanlan.zhihu.com/p/476697014 2.常用参数说明 2.1编译过程控制 参数作用-oOutput&#xff0c;指定输出名字-cCompile&#xff0c;编译源文件生成对…...

51单片机课设基于GM65模块的二维码加条形码识别

系统组成 主控单元&#xff1a;51单片机&#xff08;如STC89C52&#xff09;作为核心控制器&#xff0c;协调各模块工作。 扫描模块&#xff1a;GM65条码扫描头&#xff0c;支持二维码/条形码识别&#xff0c;通过串口&#xff08;UART&#xff09;与单片机通信。 显示模块&a…...

物联网赋能7×24H无人值守共享自习室系统设计与实践!

随着"全民学习"浪潮的兴起&#xff0c;共享自习室市场也欣欣向荣&#xff0c;今天就带大家了解下在物联网的加持下&#xff0c;无人共享自习室系统的设计与实际方法。 一、物联网系统整体架构 1.1 系统分层设计 层级技术组成核心功能用户端微信小程序/H5预约选座、…...

基于多头自注意力机制(MHSA)增强的YOLOv11主干网络—面向高精度目标检测的结构创新与性能优化

深度学习在计算机视觉领域的快速发展推动了目标检测算法的持续进步。作为实时检测框架的典型代表&#xff0c;YOLO系列凭借其高效性与准确性备受关注。本文提出一种基于多头自注意力机制(Multi-Head Self-Attention, MHSA)增强的YOLOv11主干网络结构&#xff0c;旨在提升模型在…...

使用Spring Boot与Spring Security构建安全的RESTful API

使用Spring Boot与Spring Security构建安全的RESTful API 引言 在现代Web应用开发中&#xff0c;安全性是不可忽视的重要环节。Spring Boot和Spring Security作为Java生态中的主流框架&#xff0c;为开发者提供了强大的工具来构建安全的RESTful API。本文将详细介绍如何结合S…...

小刚说C语言刷题—1230蝴蝶结

1.题目描述 请输出 n 行的蝴蝶结的形状&#xff0c;n 一定是一个奇数&#xff01; 输入 一个整数 n &#xff0c;代表图形的行数&#xff01; 输出 n 行的图形。 样例 输入 9 输出 ***** **** *** ** * ** *** **** ***** 2.参考代码&#xff08;C语言版&#xff09…...

利用SenseGlove触觉手套开发XR手术训练体验

VirtualiSurg和VR触觉 作为领先的培训平台&#xff0c;VirtualiSurg自2017年以来一直利用扩展现实 (XR) 和触觉技术&#xff0c;为全球医疗保健行业提供个性化、数据驱动的学习解决方案。该平台赋能医疗专业人员进行协作式学习和培训&#xff0c;提升他们的技能&#xff0c;使…...

CT重建笔记(五)—2D平行束投影公式

写的又回去了&#xff0c;因为我发现我理解不够透彻&#xff0c;反正想到啥写啥&#xff0c;尽量保证内容质量好简洁易懂 2D平行束投影公式 p ( s , θ ) ∫ ∫ f ( x , y ) δ ( x c o s θ y s i n θ − s ) d x d y p(s,\theta)\int \int f(x,y)\delta(x cos\theta ysi…...

【Java】应对高并发的思路

在Java中应对高并发场景需要结合多方面的技术手段和设计模式&#xff0c;从线程管理、数据结构、同步机制到异步处理、IO优化等&#xff0c;都需要合理设计和配置。以下是Java在高并发场景下的主要应对策略和最佳实践&#xff1a; 1. 线程管理 1.1 线程池&#xff08;ThreadPo…...

从数据分析到数据可视化:揭开数据背后的故事

从数据分析到数据可视化:揭开数据背后的故事 大家好,今天咱们聊聊“从数据分析到数据可视化”的完整流程。说实话,数据分析和可视化这俩词听起来高大上,但咱们平时就是围绕这俩词打转——数据分析帮我们找故事,可视化则帮我们讲故事。没有它们,数据就是死的;有了它们,数…...

WPS JS宏实现去掉文档中的所有空行

WPS改造系列文章&#xff1a; 1.在WPS中通过JavaScript宏&#xff08;JSA&#xff09;调用本地DeepSeek API优化文档教程&#xff1a;在WPS中通过JavaScript宏&#xff08;JSA&#xff09;调用本地DeepSeek API优化文档教程_wps javascript-CSDN博客 2.在WPS中通过JavaScrip…...

【2025年软考中级】第一章1.6 安全性、可靠性、性能评价

文章目录 安全性、可靠性、性能评价计算机可靠性可靠性指标串并联系统可靠性并联系统可靠性N模元余系统 计算机系统性能评价信息安全加密技术对称&#xff08;私钥&#xff09;加密技术非对称加密技术&#xff08;公钥&#xff09;对称和非对称加密算法的区别数字信封原理数字签…...

MODBUS RTU通信协议详解与调试指南

一、MODBUS RTU简介 MODBUS RTU&#xff08;Remote Terminal Unit&#xff09;是一种基于串行通信&#xff08;RS-485/RS-232&#xff09;的工业标准协议&#xff0c;采用二进制数据格式&#xff0c;具有高效、可靠的特点&#xff0c;广泛应用于PLC、传感器、变频器等工业设备…...

【深度学习新浪潮】大模型时代,我们还需要学习传统机器学习么?

在大模型时代,AI 工程师仍需掌握传统机器学习知识,这不仅是技术互补的需求,更是应对复杂场景和职业发展的关键。以下从必要性和学习路径两方面展开分析: 一、传统机器学习在大模型时代的必要性 技术互补性 大模型(如GPT、BERT)擅长处理复杂语义和生成任务,但在数据量少…...

深入解析Spring Boot与Spring Security的集成实践

深入解析Spring Boot与Spring Security的集成实践 引言 在现代Web应用开发中&#xff0c;安全性是一个不可忽视的重要方面。Spring Security作为Spring生态中的安全框架&#xff0c;提供了强大的认证和授权功能。本文将结合Spring Boot&#xff0c;详细介绍如何集成Spring Se…...

嵌入式学习笔记 - STM32 使用一个外部触发同时启动两个定时器

一个定时器是同时可以设置成主模式跟从模式的&#xff0c; 下面例子中&#xff0c; 一 TM1首先被配置为主模式&#xff0c; 通过MMS001&#xff1a;使能 – 计数器使能信号CNT_EN被用于作为触发输出(TRGO)。见寄存器描述&#xff0c;此位默认为000&#xff0c;这时从模式状态…...

JWT令牌验证

一、JWT 验证方式详解 JWT&#xff08;JSON Web Token&#xff09;的验证核心是确保令牌未被篡改且符合业务规则&#xff0c;主要分为以下步骤&#xff1a; 1. 令牌解析与基础校验 收到客户端传递的 JWT 后&#xff0c;首先按 . 分割为三部分&#xff1a;Header、Payload、S…...

Go语言 GORM框架 使用指南

在 Go 语言社区中&#xff0c;数据库交互一直是开发者们关注的重点领域&#xff0c;不同开发者基于自身的需求和偏好&#xff0c;形成了两种主要的技术选型流派。一部分开发者钟情于像sqlx这类简洁的库&#xff0c;尽管其功能并非一应俱全&#xff0c;但它赋予开发者对 SQL 语句…...

c#车检车构客户管理系统软件车辆年审短信提醒软件

# CMS_VehicleInspection 车检车构客户管理系统软件车辆年审短信提醒软件 # 开发背景 软件是给泸州某公司开发的车检车构客户管理系统软件。用于在车检年审到期前一个月给客户发送车检短信提醒 # 功能描述 主要功能&#xff1a;车辆年审前一个月给客户发年审短信提醒&#xf…...

匿名函数与闭包(Anonymous Functions and Closures)-《Go语言实战指南》原创

Go 支持将函数当作值来使用&#xff0c;也允许定义匿名函数&#xff0c;并通过闭包实现对外部变量的捕获与持续访问。这一特性使函数式编程风格在 Go 中成为可能。 一、什么是匿名函数&#xff1f; 匿名函数是没有名字的函数&#xff0c;可以定义后立即调用&#xff0c;或赋值…...

兰亭妙微:用系统化思维重构智能座舱 UI 体验

兰亭妙微设计专注于以产品逻辑驱动的界面体验优化&#xff0c;服务领域覆盖AI交互、智能穿戴、IoT设备、智慧出行等多个技术密集型产业。我们倡导以“系统性设计”为方法论&#xff0c;在用户需求与技术边界之间找到最优解。 此次智能驾驶项目&#xff0c;我们为某车载平台提供…...