前端学习(4)—— JavaScript(基础语法)
目录
一,介绍
1.1 是什么
1.2 组成
1.3 书写形式
1.4 输入输出
二,变量的使用
2.1 基本用法
2.2 动态类型
三,基本数据类型
3.1 数字类型
3.2 字符串类型
3.3 布尔类型
3.4 未定义数据类型
3.5 空值类型
四,运算符
五,条件语句
5.1 基本语法
5.2 switch语句
六,循环语句
6.1 while
6.2 for
七,数组
7.1 创建数组
7.2 获取数组元素
7.3 新增元素
7.4 删除元素
八,函数
8.1 语法格式
8.2 函数表达式
8.3 作用域
九,对象
9.1 理解对象
9.2 创建对象
9.3 关于 new 关键字
9.4 JavaScript 对象和 C++/Java 对象的区别
一,介绍
1.1 是什么
JavaScript,简称JS:
- 是世界上最流行的编程语言之一
- 是一个脚本语言, 通过解释器运行
- 主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行.
JS能做的事情:
- 网页开发(更复杂的特效和用户交互)
- 网页游戏开发
- 服务器开发(node.js)
- 桌面程序开发(Electron, VSCode)
- 手机 app 开发
JavaScript和Java的关系:
- 最初在网景公司,命名为LiveScript
- 后来 Netscape 将其命名为了JavaScript,是因为当时 Java 风生水起的时候,带有 Java 的名字有助于这门新语言的传播
- 所以 Java 和 JavaScript 的关系相当于印度和印度尼西亚一样,黑客和博客一样,是不同的两个东西
1.2 组成
- ECMAScript(简称 ES): JavaScript 语法
- DOM: 页面文档对象模型, 对页面中的元素进行操作
- BOM: 浏览器对象模型, 对浏览器窗口进行操作
光有 JS 语法只能写一些简单的基础逻辑流程,要想完成更复杂的任务,比如浏览器以及页面的交互,那么就需要 DOM API 和 BOM API
1.3 书写形式
①第一个程序
<script>alert("你好");
</script>
直接用浏览器打开后,就是一个弹窗信息
②行内式
这种是直接嵌入到 html 元素内部的属性中:
<input type="button" value="按钮" onclick="alert('你好')">
运行后显示一个按钮,按下就会显示一个确认弹窗
③内嵌式
这种就是和 css 一样,写到 script 标签中,就和 ① 一样
<script>alert("你好");
</script>
④外部式
这个也是和 css 一样,将 JS 代码写到另一个 .js 文件中,然后在 html 文件里引入即可:
<script src="hello.js"></script>
alert("你好")
1.4 输入输出
①输入:prompt
<script>prompt("你好");
</script>
会弹出一个输入框
②输出:alert
这个就是弹出一个对话框,前面已经演示过了:
<script>alert("你好");
</script>
③输出:console.log
这个是在控制台打印一个日志:
<script>console.log("你好");
</script>
其中打印的信息只有在浏览器的调试界面才能看到:
这样的输出一般是给程序猿看的,不展示给用户
console 是一个 js 中的“对象”,而点点 “ . ” 表示取对象中的某个属性或者方法,这点和 C++ 一样
二,变量的使用
2.1 基本用法
直接上代码:
<script>var name = '张三';var age = 20;console.log(name);console.log(age);
</script>
- var 是 JS 中的关键字, 表示这是一个变量.
- = 在 JS 中表示 "赋值", 相当于把数据放到内存的盒子中
- JS 中可以省略末尾分号,但是建议还是加上
- 初始化的值如果是字符串, 那么就要使用单引号或者双引号引起来. 初始化的值如果是数字, 那么直接赋值即可.
如下示例:
<script>var name = prompt("请输入姓名:");var age = prompt("请输入年龄:");var score = prompt("请输入分数:");alert("您的姓名是:" + name);alert("您的年龄为:" + age);alert("您的分数是:" + score);/*alert("您的姓名是: " + name + "\n" + "您的年龄是: " + age + "\n" + "您的分数是: " +
score + "\n"); 也可以把三个输出内容合并*/
</script>
2.2 动态类型
JS 的变量类型是程序运行过程中才确定的,这点和 Python 一样:
var a = 10; //数字
a = "hehe"; //字符串
三,基本数据类型
3.1 数字类型
关于number数字类型:
- JS 中不区分整数和浮点数,统一都使用 "数字类型" 来表示
- 计算机中都是使用二进制来表示数据,而人平时都是使用十进制,因为二进制在使用过程中不太方便(01太多会看花眼)。所以在日常使用二进制数字时往往使用八进制和十六进制 来表示二进制数字
var a = 07; // 八进制整数, 以 0 开头
var b = 0xa; // 十六进制整数, 以 0x 开头
var c = 0b10; // 二进制整数, 以 0b 开头
然后就是一些特殊的数字值:
- Infinity: 无穷大, 大于任何数字. 表示数字已经超过了 JS 能表示的范围
- -Infinity: 负无穷大, 小于任何数字
- NaN: 表示当前的结果不是一个数字
- 负无穷大 和 无穷小不是一回事,无穷小指无限趋近与 0, 值为 1 / Infinity
- 'hello' + 10 得到的不是 NaN, 而是 'hehe10', 会把数字隐式转成字符串, 再进行字符串拼接
- 可以使用 isNaN 函数判定是不是一个非数字
<script>console.log(isNaN(10)); // falseconsole.log(isNaN('hehe' - 10)); // true
</script>
3.2 字符串类型
①基本使用
字符串值需要用双引号或单引号括起来,否则运行出错:
<script>var a = "haha";var b = 'hehe';var c = hehe; // 运行出错
</script>
如果字符串中本来包含引号,可以使用下面两种方法解决:
②求字符串长度
直接使用 String 的 length 属性即可:
③字符串拼接
- 直接使用 + 进行拼接
- 数字和字符串也可以拼接
- 要分清除相加的变量是数组还是字符串
3.3 布尔类型
- 这个我们已经很熟悉了,就是真或者假,Boolean 参与运算时当作 1 和 0 来看待
<script>console.log(true + 1);console.log(false);
</script>
3.4 未定义数据类型
- 如果一个变量没有被初始化过,结果就是 undefined
- undefined 和字符串进行相加,结果是进行字符串拼接
- undefined 和数字进行相加,结果为 NaN
3.5 空值类型
- null 表示当前的变量是一个“空值”
- null 和 undefined 都表示取值非法的情况,但是侧重点不同
- null 表示当前的值为空,表示有一个盒子,但是这个盒子是空的
- 而 undefined 表示当前变量未定义,就是连盒子都没有
四,运算符
关于运算符这里就不赘述了,和其它高级语言的使用是大差不差的:
名称 | 符号 | 备注 |
---|---|---|
算术运算符 | +、-、*、/、% | |
赋值运算符 | =、+=、-=、*=、/=、%= | |
自增自减运算符 | ++、-- | |
比较运算符 | <、>、<=、>=、==、!=、===、!== | 两个等于号的比较相等会进行隐式类型转换,而三个等于号的不会 |
逻辑运算符 | &&、||、! | |
位运算 | &、|、~、^ | |
位移运算 | <<、<<、>>> | >>是有符号右移,<<<是无符号右移 |
五,条件语句
5.1 基本语法
基本语法和C++一样,if、else if 和 else,这里不再赘述,下面通过两个案例了解一下即可:
①判断一个数字是正数还是负数
<script>var num = 10;if (num > 0) {console.log("num 是正数");}else if (num < 0) {console.log("num 是负数");} else {console.log("num 是 0");}
</script>
②判断一个年份是否是闰年
<script>var year = 2000;if(year % 100 == 0){if(year % 400 == 0) console.log("yes");else console.log("no");}else{if(year % 4 == 0) console.log("yes");else console.log("no");}
</script>
附:三元表达式在 JavaScript 仍然可用
5.2 switch语句
语法格式也和C++一样,这里不再赘述
判断一个数是星期几:
<script>var day = prompt("请输入今天星期几: ");switch (parseInt(day)) {case 1:console.log("星期一");break;case 2:console.log("星期二");break;case 3:console.log("星期三");break;case 4:console.log("星期四");break;case 5:console.log("星期五");break;case 6:console.log("星期六");break;case 7:console.log("星期日");break;default:console.log("输入有误");}
</script>
六,循环语句
6.1 while
①计算 !5
<script>var a = 5;var ret = 1;while(a > 0){ret *= a;a--;}console.log(ret);
</script>
②打印 1 - 100 内的偶数
<script>var a = 1;while(a <= 100){if(a % 2 == 0) console.log(a);a++;}
</script>
6.2 for
for的用法和C++一样,不再赘述
计算 !5
<script>var ret = 1;for(var i = 1; i <= 5; i++) ret *= i;console.log(ret);
</script>
七,数组
7.1 创建数组
可以使用 new 关键字创建,也可以使用字面量方式创建,一般使用后者
<script>var arr1 = new Array();var arr2 = [];var arr3 = [1, 2, '你好', true]; //允许元素类型不同
</script>
7.2 获取数组元素
使用下标的方式访问数组
注意:请勿给数组直接赋值,否则会干掉数组原有的所有元素,然后数组这个变量就不再是数组了
7.3 新增元素
①通过修改 length 新增
相当于在末尾新增元素,默认为 undefined,可以通过下标来修改
②通过下标新增
如果下标超出原有范围去赋值元素,则会给指定位置擦汗如元素,其余位置填充 undefined:
③使用 push 进行追加元素
示例:将一个数组的元素放进另一个数组里去:
7.4 删除元素
我们使用 splice 方法来删除元素,里面有两个参数,表示删除第一个参数位置到第二个参数为重中间的所有值,包括位置本身,如下示例:
八,函数
8.1 语法格式
// 创建函数/函数声明/函数定义
function 函数名(形参列表) {函数体return 返回值;
}// 函数调用
函数名(实参列表) // 不考虑返回值
返回值 = 函数名(实参列表) // 考虑返回值
8.2 函数表达式
可以将一个函数搞成匿名函数,然后将这个函数用一个变量表示,后续可以通过这个变量来调用函数:
<script>var add = function() {var sum = 0;for(var i = 0; i < arguments.length; i++){sum += arguments[i];}return sum;}console.log(add(10, 20));console.log(add(1,2,3,4));console.log(typeof add);
</script>
8.3 作用域
JS中变量的作用域和C++很像,下面说明下不同点:
- 创建的全局变量在整个 script 标签中或者单独的 .js 文件中有效
- 如果在函数内部创建变量时不带 var 关键字,那么这个变量会变成全局变量
- 函数内部可以再定义函数,内部函数可以访问外层函数的局部变量
九,对象
9.1 理解对象
这里对象的概念和主流面向对象编程语言是很类似的,在JS中,字符串,数值,数组,函数等都是对象,都包含属性和方法
JS的对象和 Java/C++ 对象概念基本一致,只是具体的语法表现形式差别较大
9.2 创建对象
①使用字面量创建对象(常用)
使用 {} 创建对象,并且属性和方法使用键值对的形式,键值对之间用逗号分割
如下代码:
<script>var a = {}; //创建空对象var student = {name: '你好',height: 180,weight: 150,SayHello: function(){console.log("hello");}};console.log(student.name);console.log(student['height']);student.SayHello();
</script>
②使用 new Object 创建对象
是先创建一个空对象,然后直接使用下面的方式来新增属性,并且可以随时新增:
<script>var student = new Object();student.name = '你好',student.height = 180,student.weight = 150,student.SayHello = function(){console.log("hello");}console.log(student.name);console.log(student['height']);student.SayHello();
</script>
③使用构造函数创建对象
JS的构造函数和C++很类似,但是JS的构造函数不是和类强绑定的,JS的构造函数仅仅只是一个特殊的函数而已,如下代码:
<script>function Student(name, height, Say){this.name = name;this.height = height;this.Say = function(){console.log(Say);}}var s1 = new Student('张三', 140, '你好');var s2 = new Student('李四', 150, '你好鸭');var s3 = new Student('王五', 160, '你也好呀');console.log(s1);s1.Say();
</script>
- 构造函数首字母一般是大写
- 构造函数不需要 return
- 使用构造函数创建对象必须使用 new 关键字
9.3 关于 new 关键字
new的执行过程:
- 先在内存中创建一个空的对象 { }
- this 指向刚才的空对象(将上一步的对象作为 this 的上下文)
- 执行构造函数的代码, 给对象创建属性和方法
- 返回这个对象 (构造函数本身不需要 return, 由 new 完成了)
- 参考:new - JavaScript | MDN
9.4 JavaScript 对象和 C++/Java 对象的区别
①JS没有“类”的概念
- 对象其实就是“属性” + “方法”
- 类其实就是把一些具有共性的对象的属性和方法单独提取出来,相当于一个模板
- JS中的构造函数也有类似的效果,即使不是用构造函数,也可以随时通过 { } 的方式指出一些对象
②JS对象不区分属性和方法
js中的函数就是万金油,和普通变量一样,存储了函数的变量能够通过括号来进行调用执行
③JS对象没有 private/public 等访问控制
这就代表,对象中的属性可以被外界随意访问
④JS对象没有继承和多态
相关文章:
前端学习(4)—— JavaScript(基础语法)
目录 一,介绍 1.1 是什么 1.2 组成 1.3 书写形式 1.4 输入输出 二,变量的使用 2.1 基本用法 2.2 动态类型 三,基本数据类型 3.1 数字类型 3.2 字符串类型 3.3 布尔类型 3.4 未定义数据类型 3.5 空值类型 四,运算符…...
简单介绍C++中线性代数运算库Eigen
Eigen 是一个高性能的 C 模板库,专注于线性代数、矩阵和向量运算,广泛应用于科学计算、机器学习和计算机视觉等领域。以下是对 Eigen 库的详细介绍: 1. 概述 核心功能:支持矩阵、向量运算,包括基本算术、矩阵分解&…...
原生小程序+springboot+vue+协同过滤算法的音乐推荐系统(源码+论文+讲解+安装+部署+调试)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统背景 在数字音乐产业迅猛发展的当下,Spotify、QQ 音乐、网易云音乐等音乐平台的曲…...
[特殊字符] 如何优雅地避免 SQL 多表 LEFT JOIN 造成的笛卡尔积放大问题?
在实际项目开发中,我们经常需要从多个数据表中统计和聚合项目相关数据。但如果处理不当,多表 LEFT JOIN 容易造成 数据行数异常放大 的问题,也就是我们常说的“笛卡尔积放大”。 本文通过一个简单示例,直观讲清问题产生的原因&am…...
哈希表实现(1):
1. 哈希: 之前我们的红黑数的查找是由于左边小右边大的原则可以快速的查找,我们这里的哈希表呢? 这里是用过哈希函数把关键字key和存储位置建立一个关联的映射。 直接定址法(函数函数定义的其中一种): 直…...
【流程控制结构】
流程控制结构 流程控制结构1、顺序结构2、选择结构if基本选择结构if else语法多重if语法嵌套if语法switch选择结构 3、循环结构循环结构while循环结构程序调试for循环跳转语句区别 流程控制结构 1、顺序结构 流程图 优先级 2、选择结构 if基本选择结构 单if 语法 if&…...
敏捷-第二章 敏捷宣言与原则
敏捷宣言与原则之间的关系 将敏捷明确表述为一种思维模式,它由《敏 捷宣言》的价值观所界定,受敏捷原则指导, 4通过各种实践实现敏捷不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。 敏捷宣言(Manifesto)的4大价值…...
UAI 2025重磅揭晓:录取数据公布(附往届数据)
近日,第41届UAI公布了论文录用结果。本次大会共收到 750篇有效论文投稿,最终录用230篇,录用率为30.7%。录取率较去年(UAI 2024)相比有所上升(录取率:26.88%)。 会议概览 人工智能不…...
京东方10.1寸工业液晶屏GV101WXM-N80
第一篇:规格参数总览 产品标称 京东方(BOE) GV101WXM-N85 工业级显示单元 核心应用方向 教学终端设备|工业便携装置|车载控制系统 面板属性 非晶硅TFT液晶技术|全视角显示模式联合常暗配置 物理规格 对角线长度25.7cm&…...
实例分割AI数据标注 ISAT自动标注工具使用方法
文章目录 🌕ISAT安装和启动方法🌕下载和使用AI分割模型🌙SAM模型性能排行🌙手动下载sam模型 & sam模型下载路径🌕使用方法🌙从file中导入图片🌙点击左上角的图标进入分割模式🌙鼠标左键点击画面中的人则自动标注🌙点击右键该区域不标注🌙一个人一个人的…...
软件架构风格系列(4):事件驱动架构
文章目录 前言一、从“用户下单”场景看懂事件驱动核心概念(一)什么是事件驱动架构?(二)核心优势:解耦与异步的双重魔法 二、架构设计图:三要素构建事件流转闭环三、Java实战:从简单…...
软件架构风格系列(2):面向对象架构
文章目录 引言一、什么是面向对象架构风格1. 定义与核心概念2. 优点与局限性二、业务建模:用对象映射现实世界(一)核心实体抽象1. 员工体系2. 菜品体系 (二)封装:隐藏实现细节 三、继承实战:构建…...
python打卡day27
函数装饰器 知识点回顾: 装饰器的思想:进一步复用函数的装饰器写法注意内部函数的返回值 日常ctrl点进某个复杂的项目,发现函数定义上方有一个xxx,它就是装饰器。装饰器本质上是一个 Python 函数,可以在不修改原函数代码的情况下&…...
智能AI构建工地安全网:跌倒、抽搐、区域入侵多场景覆盖
智能AI在工地安全中的应用:从监测到救援的全流程实践 一、背景:高温作业下的工地安全挑战 随着夏季高温持续,工地户外作业环境面临严峻考验。工人因高温疲劳、脱水或突发疾病引发的行为异常(如晕厥、抽搐、跌倒)频发…...
gflags 安装及使用
目录 引言 安装 如何用 gflags 库写代码 如何用命令行使用 gflags 库 gflags 库的其他命令行参数 引言 gflags 是 Google 开发的一个开源库,用于 C 应用程序中命令行参数的声明、定义 和解析。 gflags 库提供了一种简单的方式来添加、解析和文档化命令行标…...
金融问答系统:如何用大语言模型打造高精度合规的金融知识引擎
假如我现在向大模型提问,我的问题是:请查询在2021年度,68**38股票涨停天数? 或者我问:湖南*****科股份有限公司变更设立时作为发起人的法人有哪些? 大模型巴拉巴拉给我一个答案,那怎么让我信任大…...
Spring WebFlux与Quarkus实战:云原生微服务开发的两大主流框架深度解析
简介 云原生与微服务架构已成为企业数字化转型的核心驱动力,而Spring WebFlux和Quarkus作为两大主流框架,各自提供了独特的解决方案来应对高并发、低延迟和快速启动的挑战。本文将从零开始,详细讲解如何使用这两个框架构建高性能的云原生微服务,并通过实际案例展示它们在企…...
成功案例丨从草图到鞍座:用先进的发泡成型仿真技术变革鞍座制造
案例简介 在鞍座制造中,聚氨酯泡沫成型工艺是关键环节,传统依赖实验测试的方法耗时且成本高昂。为解决这一问题,意大利自行车鞍座制造商 Selle Royal与Altair合作,采用Altair Inspire PolyFoam软件进行发泡成型仿真。 该工具帮助团…...
学习日志09 java
我要(ง •_•)ง!! 1 面向对象里面的编程的属性,其实就是变量啦 在面向对象编程里,“属性”(Attribute)也被叫做 “成员变量” 或者 “字段”(Field),指的是类中用来存…...
深入解析Spring Boot与微服务架构:从入门到实践
深入解析Spring Boot与微服务架构:从入门到实践 引言 随着云计算和分布式系统的普及,微服务架构已成为现代软件开发的主流模式。Spring Boot作为Java生态中最受欢迎的框架之一,为开发者提供了快速构建微服务的强大工具。本文将深入探讨Spri…...
25考研经验贴(11408)
声明:以下内容都仅代表个人观点 数学一(130) 25考研数学一难度介绍:今年数学一整体不难,尤其是选填部分,大题的二型线面和概率论大题个人感觉比较奇怪,其他大题还是比较容易的。.26如何准备&a…...
Linux运行时的参数、命令、网络、磁盘参数和日志监控
一、监控 1. free 功能:用于查看系统内存使用情况,包括物理内存总量、已用内存、空闲内存、缓冲区(buffer)和缓存(cache)占用,以及交换内存(swap)的使用与剩余情况。常…...
Spring Boot循环依赖的陷阱与解决方案:如何打破“Bean创建死循环”?
引言 在Spring Boot开发中,你是否遇到过这样的错误信息? The dependencies of some of the beans in the application context form a cycle 这表示你的应用出现了循环依赖。尽管Spring框架通过巧妙的机制解决了部分循环依赖问题,但在实际开…...
如何打造MVP(最小可行性产品)(MVP=核心功能+快速验证+用户反馈+持续迭代)
文章目录 **一、MVP的核心原则**1. **聚焦核心价值**2. **快速迭代**3. **低成本验证** **二、MVP的打造步骤****1. 定义目标用户和核心需求****2. 确定MVP的核心功能**- **筛选关键功能**:1. 用户是否愿意为这个功能付费?2. 实现该功能的技术难度和成本…...
conda init执行了还是不好用
按照gpt的方法,还是方法一:以管理员身份运行 PowerShell 并设置执行策略 好用 你遇到的问题是典型的 Conda 环境激活失败 错误,提示如下: CondaError: Run conda init before conda activate但你已经运行了 conda initÿ…...
crontab 定时任务不执行问题排查
*/5 * * * * sh /data03/jq/sparkjob.sh 定时任务不执行! Cron默认丢弃输出,错误信息无法查看。 将输出和错误重定向到日志文件: /bin/sh /data03/jq/sparkjob.sh >> /tmp/sparkjob.log 2>&1 检查日志文件 /tmp/sparkjob.log 定…...
require/exports 或 import/export的联系和区别,各自的使用场景
以下是 require/exports(CommonJS)与 import/export(ES6 Modules)的对比分析及使用场景说明: 一、核心联系 模块化目标 两者都用于实现代码模块化,解决全局作用域污染和依赖管理问题。 跨环境适配…...
如何更改远程桌面连接的默认端口?附外网访问内网计算机方法
远程连接端口根据协议和场景不同有所差异,以下是常见远程连接端口的设置及修改方法,同时附外网访问内网计算机操作。 一、Windows远程桌面默认端口 默认端口:3389(TCP协议),用于Windows远程桌面服务&…...
模拟jenkins+k8s自动化部署
参考 Jenkins+k8s实现自动化部署 - 掘金 手把手教你用 Jenkins + K8S 打造流水线环境 - 简书 安装插件 调整插件升级站点 (提高插件下载速度) 默认地址 https://updates.jenkins.io/update-center.json 新地址 http://mirror.xmission.com/jenkins/updates/update-center.json …...
Jenkins教程
参考 Jenkins 用户手册 Jenkins User Documentation 在项目创建Jenkinsfile文件 添加分支源 报错 不自动拉取分支,改为手工指定分支 又报了一个错, 解决方法,参考: Jenkins中连接Git仓库时提示:无法连接仓库:Error performing git command: git ls-remote -h_霸道流…...
从验证码绕过到信息轰炸:全面剖析安全隐患与防范策略
在数字化交互场景中,验证码作为区分人类操作与自动化程序的核心屏障,广泛应用于用户身份核验、操作权限确认等关键环节。其设计初衷是通过人机识别机制,保障信息系统交互的安全性与可控性。然而,当验证码验证机制出现异常突破&…...
CSS:颜色的三种表示方式
文章目录 一、rgb和rgba方式二、HEX和HEXA方式(推荐)三、hsl和hsla方式四、颜色名方式 一、rgb和rgba方式 10进制表示方法 二、HEX和HEXA方式(推荐) 就是16进制表示法 三、hsl和hsla方式 语法:hsl(hue, satura…...
math toolkit for real-time development读书笔记一-三角函数快速计算(1)
一、基础知识 根据高中知识我们知道,很多函数都可以用泰勒级数展开。正余弦泰勒级数展开如下: 将其进一步抽象为公式可知: 正弦和余弦的泰勒级数具有高度结构化的模式,可拆解为以下核心特征: 1. 符号交替特性 正弦级…...
超市营业额数据分析
1.推出5名销冠 2.新领导想看看他15天以来的业绩总增长情况,以及增长额前3的柜台 3.把所有柜台的销售额分为3个等级 import pandas as pd import matplotlib.pyplot as plt import numpy as np# 设置中文字体和显示方式 plt.rcParams.update({font.sans-serif&...
labelimg安装及使用指南(yolo)
1.安装 首先要安装Anaconda,然后打开Anaconda Prompt 构建一个新的虚拟环境(注:虚拟环境的python的版本应在3.9及以下,不然会在运行中报错) conda create -n label python3.9 其中这里label只是一个名字,…...
在 Ubuntu 系统中,将 JAR 包安装为服务
在 Ubuntu 系统中,将 JAR 包安装为服务可以通过 systemd 来实现。以下是详细的操作步骤: 准备工作 确保 JAR 文件路径和 Java 运行时环境已准备好。验证 Java 是否可用: java -version创建 systemd 服务文件 systemd 的服务文件通常位于 …...
我的 PDF 工具箱:CodeBuddy 打造 PDFMagician 的全过程记录
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 最近,我萌生了一个念头:能不能自己动手做一个功能丰富的 PDF 工具箱?市面上…...
WebSocket聊天室的简单制作指南
一、前言 最近在学习WebSocket技术,做了一个简单的聊天室Demo。这个项目虽然不大,但涵盖了WebSocket的核心功能实现。下面我将详细介绍这个聊天室的实现过程,希望能帮助到同样想学习WebSocket的朋友们。 二、技术选型 后端:Spri…...
非国产算力DeepSeek 部署中的常见问题及解决方案
随着大语言模型(LLM)在企业级应用场景中的快速推进,DeepSeek 一体机凭借其高性能推理能力和便捷的系统集成优势,正逐步成为多行业智能化转型的重要基础设施。然而,在实际部署过程中,技术团队常常会遭遇一系…...
大数据技术的主要方向及其应用详解
文章目录 一、大数据技术概述二、大数据存储与管理方向1. 分布式文件系统2. NoSQL数据库3. 数据仓库技术 三、大数据处理与分析方向1. 批处理技术2. 流处理技术3. 交互式分析4. 图计算技术 四、大数据机器学习方向1. 分布式机器学习2. 深度学习平台3. 自动机器学习(AutoML) 五、…...
Maven使用详解:Maven的概述(二)
一、核心定义与功能 Maven是由Apache软件基金会开发的开源项目管理工具,专为Java项目设计,主要用于自动化构建、依赖管理和项目标准化。其核心功能包括: 依赖管理:通过pom.xml文件声明依赖库,自动从中央仓库下载并管…...
在 Odoo 18 表单视图中使用 JS 类的方法
在 Odoo 18 表单视图中使用 JS 类的方法 一、模块结构创建 要为特定视图在 JavaScript 里注册一个类。后续在任意表单视图中添加相同类时,自定义视图就会被注入该表单。 具体要做的是: 把自定义视图创建出来当作模板。将视图注册成一个组件。把它和表…...
ubuntu 更新华为源
1. 备份配置文件 sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak 2. 修改source.list 文件,将http://archive.ubuntu.com和http://security.ubuntu.com替换成http://repo.huaweicloud.com,可以参考如下命令: # 第一条指令 s…...
如何安装cuda版本的pytorch
为什么安装Cuda 对于做深度学习研究的小伙伴本,当我们处理大量的数据时,尤其是图像数据时,过量的数据会导致我们的CPU运行压力过大,占用大量的运行内存,而且用CPU进行模型训练,训练的时间会很长࿰…...
国际名校教育大模型的构建与教学应用实践
一、引言 全球AI数字教育正在快速发展,人工智能技术已成为推动教育变革的核心驱动力。从个性化学习到智能评测,从虚拟助教到自适应教学系统,AI正在重塑教育的形态。在此背景下,国际顶尖高校纷纷布局教育大模型,探索AI与教学的深度融合,以提升教育质量、优化学习体验。与…...
postgres的docker版本安装
postgres的docker版本安装 背景 测试和开发需要用到postgres,越快越好,想到了用docker进行安装。 sudo docker run -d -p 5432:5432 --restartalways -v /home/docker/postgre/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD123456 --name p…...
知识蒸馏实战:用PyTorch和预训练模型提升小模型性能
在深度学习的浪潮中,我们常常追求更大、更深、更复杂的模型以达到最先进的性能。然而,这些“庞然大物”般的模型往往伴随着高昂的计算成本和缓慢的推理速度,使得它们难以部署在资源受限的环境中,如移动设备或边缘计算平台。知识蒸…...
【HTML 全栈进阶】从语义化到现代 Web 开发实战
目录 🌟 前言🏗️ 技术背景与价值🩹 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🧠 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🔧 关键技术模块说明⚖️ 技术选…...
Transformer 模型与注意力机制
目录 Transformer 模型与注意力机制 一、Transformer 模型的诞生背景 二、Transformer 模型的核心架构 (一)编码器(Encoder) (二)解码器(Decoder) 三、注意力机制的深入剖析 …...
机器学习数据预处理回归预测中标准化和归一化
在机器学习的回归预测任务中,** 标准化(Standardization)和归一化(Normalization)** 是数据预处理的重要步骤,用于消除不同特征量纲和取值范围的影响,提升模型训练效率和预测性能。 一、标准化…...