ES6规范新特性总结
ES6新特性
- var、let和const
- 不存在变量提升
- 暂时性死区
- 不允许重复声明
- 解构赋值
- 用途:
- 交换变量的值
- 从函数返回多个值
- 提取JSON数据
- 遍历map结构
- 输入模块的制定方法
- 字符串的扩展
- codePointAt()
- String.fromCharCode()
- at()
- includes(),startsWith(),endsWith()
- repeat()
- padStart(), padEnd()
- 模版字符串
- String.raw()
- 正则的扩展
- RegExp构造函数
- 数值的扩展
- Number()方法
- Number.isFinite() 和 Number.isNaN()
- Number.parseInt() 和 Number.parseFloat()
- Number.isInterger()
- Number.EPSILON
- 安全整数和Number.isSafeInteger()
- Math对象的扩展
- Math.trunc()
- Math.sign()
- Math.cbrt()
- Math.clz32()
- Math.imul()
- Math.fround()
- Math.hypot()
- 对数方法
- 三角函数方法
- 指数运算符
- 数组的扩展
- Array.from()
- Array.of()
- 数组实例的copyWithin()
- 数组实例的find()和findIndex()
- 数组实例的fill()
- 数组实例的entries()、keys()、和values()
- 数组实例的includes()
- 数组的空位
- 数组推导
- 下面是波煮在阅读阮一峰圣经之后总结的一些关于ES6的知识点,希望可以帮助到大家
var、let和const
不存在变量提升
- var命令会存在变量提升,但是let命令不会变量提升
暂时性死区
- 本质:只要一进去当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量
不允许重复声明
- let不允许在相同作用域内,重复声明同一个变量
解构赋值
- 规则:只要等号右边的值不是对象,就先将其转化为对象,由于
undefined
和null
无法转为对象,所以对它们进行解构赋值都会报错
函数参数的解构赋值 - 函数的参数也可以解构赋值
function add([x,y]){return x + y
}add([1,2]) //x=1,y=2
用途:
交换变量的值
[x,y] = [y,x] //交换了x和y的值
从函数返回多个值
- 函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回。有了解构赋值,取出这些值就非常方便
const example = ()=>{return [1,2,3]
}var [a,b,c] = example()
//a = 1
//b = 2
//c = 3
提取JSON数据
- 解构赋值对提取JSON对象中的数据尤其有用
- 可以快速提取JSON数据的值
var jsonData = {id:1,status:"OK",data:[123,321]
}let {id,status,data} = jsonData
//id = 1
//status = "OK"
//data = [123,321]
遍历map结构
- 任何部署了iterator接口的对象,都可以用for…of循环遍历。Map结构原生支持iterator接口,配合变量的解构赋值,获取键名和键值就非常方便
var map = new Map()
map.set('first','one')
map.set('second','two')for(let [key,value] of map){console.log(key + "is" value)
}
//first is one
//second is two
- 如果只想获取键名或者键值,可以写成下面这样
//获取键名
for(let [key] of map){}//获取键值
for(let [,value] of map){}
输入模块的制定方法
- 加载模块时,往往需要指定输入哪些方法。解构赋值是的输入语句非常清晰
const {method1, method2} = require('source-methods')
字符串的扩展
codePointAt()
- 能够正确处理4个字节储存的字符,返回一个字符的码点
- 对于2个字节储存的常规字符,它的返回结果与charCodeAt()方法相同
codePointAt()
方法返回的是码点的十进制值,如果想要十六进制的值,可以使用toString方法转换一下codePointAt()
方法实测实一个字符由2个字节还是4个字节组成的最简单的方法
const is32Bit = (c)=>{return c.codePointAt(0) > 0xFFFF
}is32Bit("𠜂")
is32Bit("a")
String.fromCharCode()
- 可以识别大于
0xFFFF
的字符
注意:fromCharCode()方法定义在String对象上,而codePointAt()方法定义在字符串的实例对象上
at()
- ES5对字符串对象提供了charAt方法,返回字符串给定位置的字符。该方法不能识别码点大于
0xFFFF
的字符 - ES7为字符串实例提供了at方法,可以识别Unicode编号大于
0xFFFF
的字符,返回正确的字符
includes(),startsWith(),endsWith()
- includes():返回布尔值,表示是否找到了参数字符串
- startsWith():返回布尔值,表示参数字符串是否在源字符串的头部
- endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部
var s = "Hello world"
s.startsWith('Hello') //true
s.endsWith('!') //false
s.includes('o') //true
这三个方法都支持第二个参数,表示开始搜索的位置
repeat()
- repeat方法返回一个新字符串,表示将原字符串重复n次
'x'.repeat(3) //"xxx"
- 参数如果是小数,会向下取整,即忽略后面的小数部分
'x'.repeat(2.9)
- 如果参数是负数或者Infinity,会报错
- 参数NaN等同于0
padStart(), padEnd()
- ES7推出来字符串补全长度的功能,如果某个字符串未达指定长度,会在头部或者尾部补全。
padStart
用于头部补全,padEnd
用于尾部补全
'x'.padStart(5,'ab') //'ababx'
'x'.padStart(4,'ab') //'abax''x'.padEnd(5,'ab') //'xabab'
模版字符串
- 模版字符串是增强版的字符串,用反引号标识。
- 可以都当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量
注意:在模版字符串中嵌入变量,需要将变量名写在${}中
String.raw()
- 是一个特殊的模版字符串标签,用于返回模版字符串的原始内容,而不是处理后的字符串。
- 他不会对字符串中的转义字符进行解释,而是直接返回他们的原始文本
let rawStr = String.raw`Hello\nWorld`;
console.log(rawStr);// 输出:Hello\nWorldlet str = `Hello\nWorld`;
console.log(str);// 输出:// Hello// World
正则的扩展
RegExp构造函数
- ES6允许RegExp构造函数接受正则表达式作为参数,这是会返回一个原有正则表达式的拷贝
var regex = new RegExp(/xyz/i)
数值的扩展
- ES6提供了二进制和八进制数值的新写法,分别用前缀0b 和 0o 表示
0b111110111 === 503 //true
0o767 === 503 //ture
- 如果要将使用0b和0x前缀的字符串数值转为十进制的值,要使用
Number()方法
Number('0b111') //7
Number('0o10') //8
Number.isFinite() 和 Number.isNaN()
- ES6在Number对象上新提供了
Number.isFinite()
和Number.isNaN()
两个方法,用来检查Infinite和NaN这两个特殊值 Number.isFinite()
:用来检查一个数值是否非无穷
-Number.isNaN()
:用来检查一个值是否为NaN
注意:这两个新方法只对数值有效,对于非数值一律返回false
Number.parseInt() 和 Number.parseFloat()
- ES6将全局方法
parseInt()
和parseFloat()
移植到了Number对象上,行为完全保持不变,这样做的目的,是逐步减少全局性方法,使语言逐步模块化 - 用于将字符串安全地转换为数字
Number.isInterger()
- 用来判断一个值是否为整数。
- 注意:在js内部,整数和浮点数是同样的储存方法,所以3和3.0被视为同一个值
Number.isInteger(25) //true
Number.isInteger(25.0) //true
Number.isInteger(25.1) //false
Number.isInteger("15") //false
Number.isInteger(true) //false
Number.EPSILON
- ES6在Number对象上新增了一个极小的常量------
Number.EPSILON
- 引入这个值的目的:在于为浮点数计算设置一个误差范围。
安全整数和Number.isSafeInteger()
- ES6引入了
Number.MAX_SAFE_INTEGER
和Number.MIN_SAFE_INTEGER
两个常量,用来表示这个范围的上下限 -------2的53次方
到2的53次方
(不含两个端点) - Number.isSafeInteger():用来判断一个整数是否落在上述范围内
Math对象的扩展
Math.trunc()
Math.trunc
方法用于去除一个数的小数部分,返回整数部分
Math.trunc(4.1) //4
Math.trunc(4.9) //4
Math.trunc(-4.1) //-4
Math.trunc(-4.9) //-4
Math.trunc(-0.1234) //-0
- 对于非数值,
Math.trunc()
内部使用Number方法将其先转为数值 - 对于空值和无法截取的整数的值,返回NaN
Math.trunc(NaN) //NaN
Math.trunc('foo') //NaN
Math.trunc() //NaN
Math.sign()
Math.sign()
方法用于判断一个数到底是正数、负数、还是零- 返回值的五种情况:
- 参数为正数,返回+1
- 参数为负数,返回-1
- 参数为0,返回0
- 参数为-0,返回-0
- 其他值,返回NaN
Math.cbrt()
Math.cbrt()
方法用于计算一个数的立方根
Math.clz32()
- 该方法返回一个数的32位无符号整数形式有多少个前导0
Math.imul()
- 该方法返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数
Math.imul(2,4) //8
Math.imul(-1,8) //-8
Math.imul(-2,-2) //4
Math.fround()
- Math.fround()方法返回一个数的单精度浮点数形式
Math.fround(1) //1
Math.fround(1.337) //1.3370000123977661
Math.hypot()
- 该方法返回所有参数的平方和的平方根
Math.hypot(3,4) //5
Math.hypot(NaN) //NaN
Math.hypot(3,4,'foo') //NaN
- 只要有一个参数无法转为数值,就会返回NaN
对数方法
Math.expm1(x)
:返回e^x-1,即Math.exp(x) - 1Math.log1p(x)
:返回log(1+x),如果x小于-1,则返回NaNMath.log10(x)
:返回以10为底的x的对数,如果x小于0,则返回NaNMath.log2(x)
:返回以2为底的x的对数。如果x小于0,则返回NaN
三角函数方法
- ES6新增了6个三角函数方法
Math.sinh(x)
:返回x的双曲正弦
2.Math.conh(x)
:返回x的双曲余弦Math.tanh(x)
:返回x的双曲正切Math.asinh(x)
:返回x的反双曲正弦Math.acosh(x)
:返回x的反双曲余弦Math.atanh(x)
:返回x的反双曲正切
指数运算符
- ES7新增了一个指数运算符(**)
2**2 = 4
3**3 = 27//新的赋值运算符
a **= 2
等同于:a = a * a
数组的扩展
Array.from()
- 该方法用于将两类对象转为真正的数组:
- 类似数组的对象:必须有length属性
- 可遍历的对象(包括set和map)
let arrayLike = {'0':'a','1':'b','2':'c',length:3
};//ES5的写法
var arr1 = [].slice.call(arrayLike)//ES6的写法
var arr2 = Array.from(arrayLike)
注意:只要是部署了iterator接口的数据结构,Array.from
都能将其转为数组
- 如果参数是一个真正的数组,那么该方法的返回结果是一个一模一样的数组
-Array.from()
还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组 - 应用:将字符串转为数组,然后返回字符串的长度,因为它能正确处理各种Unicode字符,可以避免JavaScript将大于\uFFFF的Unicode字符算作2个字符的bug
Array.of()
- Array.of()
方法用于将一组值转换为数组
Array.of(3,11,8) //[3,11,8]
Array.of(3) //[3]
Array.of(3).length //1
Array.of()
基本上可以用来替代Array()
或者new Array()
,并且不存在由于参数不同而导致的重载。Array.of()
总是返回参数值组成的数组。如果没有参数,就返回一个空数组
数组实例的copyWithin()
- 该方法的作用:在当前数组内部将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。使用这个方法会修改当前数组
[1,2,3,4,5].copyWithin(0,3)
//[4,5,3,4,5]
- 上述代码的解释:上述代码表示将从3号位置直到数组结束的成员(4和5),复制到从0号位置开始的位置,结果覆盖了原来的1和2
数组实例的find()和findIndex()
- 数组实例的
find()
方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员一次执行该回调函数,直到找出第一个返回值为true
的成员,然后返回该成员,如果没有符合条件的成员,则返回undefined
[1,4,-5,10].find(n=>n<0)
//-5
- 数组实例的
findIndex()
方法与find()
方法非常类似,返回的是第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1
数组实例的fill()
fill()
方法使用给定值填充数组fill()
方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置
数组实例的entries()、keys()、和values()
- 这三个方法都用来遍历数组,返回一个遍历器对象
keys()
是对键名的遍历values()
是对键值的遍历entries()
是对键值对的遍历
for(let index of ['a','b'].keys()){console.log(index)
}
// 0
// 1for(let [index,elem] of ['a','b'].entries()){console.log(index,elem)
}
// 0 'a'
// 1 'b'
数组实例的includes()
- 该方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的
includes方法
类似 - 该方法的第二个参数表示搜索的起始位置,默认是0
- 没有该方法时,通常使用数组的
indexOf方法
检查是否包含某个值
注意:Map和Set数据结构有一个has方法,需要和includes进行区分
- Map结构的
has方法
是用来查找键名的 - Set结构的
has方法
是用来查找值的
数组的空位
- 数组的空位指数组的某一个位置没有任何值
- 注意:空位不是
undefined
,一个位置的值等于undefined
依然是有值的。空位是没有任何值 - ES6明确将空位转为
undefined
数组推导
- 允许直接通过现有数组生成新数组
var a1 = [1,2,3,4]
var a2 = [for (i of a1) i * 2]a2 //[2,4,6,8]
- 上面的代码表示,数组a2通过for…of结构直接在a1的基础上生成
- 注意,数组推导中,for…of结构总是写在最前面,返回的表达式写在最后面
- 数组推导可以替代map和filter方法
相关文章:
ES6规范新特性总结
ES6新特性 var、let和const不存在变量提升暂时性死区不允许重复声明 解构赋值用途:交换变量的值从函数返回多个值提取JSON数据遍历map结构输入模块的制定方法 字符串的扩展codePointAt()String.fromCharCode()at()includes(),startsWith(),endsWith()repeat()padSta…...
AI模型多阶段调用进度追踪系统设计文档
AI模型多阶段调用进度追踪系统设计文档 一、系统概述 为解决AI模型处理大型文件时响应时间长的问题,我们设计并实现了一套异步进度追踪系统。该系统采用Server-Sent Events (SSE) 技术,建立从服务器到客户端的单向实时通信通道,使前端能够实…...
[MSPM0开发]最新版ccs20.0安装、配置及导入第一个项目
一、ccs20.0 下载与安装 Code Composer Studio™ 集成式开发环境 (IDE),适用于 TI 微控制器和处理器的集成开发环境 (IDE)。它包含一整套丰富的工具,用于构建、调试、分析和优化嵌入式应用。 ccs下载地址 链接 安装比较简单,在次略过。 二、…...
Win10怎么关闭远程控制?
对于Windows 10用户来说,Win10关闭远程桌面可以有效防止不必要的远程连接,从而保护个人数据和系统安全。那么,Win10怎么关闭远程控制功能呢?接下来,我们将详细介绍Win10关闭远程控制的具体操作步骤。 步骤1.双击桌面上…...
AI重构知识生态:大模型时代的学习、创作与决策革新
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:从知识的获取到知识的共生 过去,我们对“知识”的理解,大多依赖书籍、老师、经验和专业的培训体系。而在大语言模型(Large Language Models, LLM)崛起之后,AI成为了一种新的“知识界面”:…...
牛客 小红杀怪
通过枚举所有使用y技能的次数来枚举出所有方案,选出最合适的 #include<iostream> #include<cmath> #include<algorithm> using namespace std;int a, b, x, y; int ans500;int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>&…...
Spring入门概念 以及入门案例
Spring入门案例 Springspring是什么spring的狭义与广义spring的两个核心模块IoCAOP Spring framework特点spring入门案例不用new方法,如何使用返回创建的对象 容器:IoC控制反转依赖注入 Spring spring是什么 spring是一款主流的Java EE轻量级开源框架 …...
SpringAI调用硅基流动免费模型
一、引入Spring AI 新建一个Spring Boot的工程,在工程中引入Spring AI的依赖,Spring AI支持Ollma、类OpenAI的接口,这两个引入的pom不一样,这里示例中是使用的硅基流动的模型 <!-- Spring Boot版本要 2.x 或者 3.x以上-->…...
Java 开发中主流安全框架的详细对比,涵盖 认证、授权、加密、安全策略 等核心功能,帮助开发者根据需求选择合适的方案
以下是 Java 开发中主流安全框架的详细对比,涵盖 认证、授权、加密、安全策略 等核心功能,帮助开发者根据需求选择合适的方案: 1. 主流安全框架对比表 框架名称类型核心功能适用场景优点缺点官网/文档Spring Security企业级安全框架认证、授…...
【TVM教程】在支持 CMSIS-NN 的 Arm(R) Cortex(R)-M55 CPU 和 Ethos(TM)-U55 NPU 裸机上运行 TVM
Apache TVM是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/ 作者:Grant Watson 本节使用示例说明如何使用 TVM 在带有 CMSIS-NN 的 Arm Cortex-M55 CPU 和 Ethos™-U55 NPU 的…...
【Ai/Agent】Windows11中安装CrewAI过程中的错误解决记录
CrewAi是什么,可以看之下之前写的 《初识CrewAI多智能代理团队协框架》 (注:这篇是基于linux系统下安装实践的) 基于以下记录解决问题后,可以再回到之前的文章继续进行CrewAI的安装 遇到问题 在windows系统中安装 CrewAi 不管是使用 pip 或者…...
洛谷 P11962:[GESP202503 六级] 树上漫步 ← dfs + 邻接表
【题目来源】 https://www.luogu.com.cn/problem/P11962 【题目描述】 小 A 有一棵 n 个结点的树,这些结点依次以 1,2,⋯,n 标号。 小 A 想在这棵树上漫步。具体来说,小 A 会从树上的某个结点出发,每⼀步可以移动到与当前结点相邻的结点&…...
Linux shell脚本编程
什么是Shell程序设计? 也就是给计算机发命令,让它帮你做事,你通过shell 的小工具,用键盘输入指令,linux就会根据这些指令去执行任务,就像你法号一个指令一样。 shell的强大之处? 文件处理&a…...
嵌入式硬件篇---Uart和Zigbee
文章目录 前言一、UART(通用异步收发传输器)1. 基本概念2. 工作原理帧结构起始位数据位校验位停止位 异步通信波特率 3. 特点优点缺点 4. 典型应用 二、ZigBee1. 基本概念2. 技术细节工作频段2.4GHz868MHz 网络拓扑星型网络网状网络簇状网络 协议栈物理层…...
Linux Makefile-概述、语句格式、编写规则、多文件编程、Makefile变量分类:自定义变量、预定义变量
目录 1.make 1.1 make 命令格式 2.Makefile 核心概念 2.1创建并运行 Makefile步骤 3. Makefile编写 3.1最基础Makefile 3.1.1使用默认make命令 3.1.2使用make -f 命令 3.1.3 gcc编译常用组合选项 3.1.4 make 和 make all区别 3.1.4.1 all 是默认目标 3.1.4.2 al…...
Kotlin日常使用函数记录
文章目录 前言字符串集合1.两个集合的差集2.集合转数组2.1.集合转基本数据类型数组2.2.集合转对象数组 Map1.合并Map1.1.使用 操作符1.2.使用 操作符1.3.使用 putAll 方法1.4.使用 merge 函数 前言 记录一些kotlin开发中,日常使用的函数和方式之类的,…...
【JavaScript】异步编程
个人主页:Guiat 归属专栏:HTML CSS JavaScript 文章目录 1. 异步编程基础1.1 同步与异步1.1.1 同步执行1.1.2 异步执行 1.2 JavaScript 事件循环 2. 回调函数2.1 基本回调模式2.2 错误处理2.3 回调地狱 3. Promise3.1 Promise 基础3.2 Promise 链式调用3…...
批量合并多张 jpg/png 图片为长图或者 PDF 文件,支持按文件夹合并图片
我们经常会碰到需要将多张图片拼成一张图片的场景,比如将多张图片拼成九宫格图片,或者将多张图片拼成一张长图。还有可能会碰到需要将多张图片合并成一个完整的 PDF 文件来方便我们进行打印或者传输等操作。那这些将图片合并成一张图片或者一个完整的文档…...
使用docker 安装向量数据库Milvus
Miluvs 官网 www.milvus.io/ https://milvus.io/docs/zh/install_standalone-docker-compose-gpu.md 一、基本概念 向量数据库:Milvus是一款云原生向量数据库,它支持多种类型的向量,如浮点向量、二进制向量等,并且可以处理大规模…...
在线PDF文件拆分工具,小白工具功能实用操作简单,无需安装的文档处理工具
小白工具中的在线 PDF 文件拆分工具是一款功能实用、操作便捷的文档处理工具,以下是其具体介绍: 操作流程 上传 PDF 文档:打开小白工具在线PDF文件拆分工具 - 快速、免费拆分PDF文档 - 小白工具的在线 PDF 文件拆分页面,通过点击 …...
Blender画图——阵列使用
如图我需要多个图示的图形,并且排成一个阵列效果。 如图依次点击效果。不要用相对偏移,要用恒定偏移。 如图设置数量。 如图完成x方向的画图后,我们需要在y方向再用一个阵列。...
VSCode 常用快捷键
Visual Studio Code (VSCode) 提供了许多快捷键,以帮助开发者提高编码效率。以下是一些常用的 VSCode 快捷键,这些快捷键适用于大多数操作系统,但在 macOS 上可能会有所不同(通常是将 Ctrl 替换为 Cmd)。 1. 文件和编…...
缓存相关问题
Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制 Redis 为什么…...
每日一题(小白)暴力娱乐篇22
为什么要经常学习暴力和一些娱乐呢?因为对于我们来说,暴力是最直接的方式是肯定能满足一部分答案的方法,娱乐是为了让算法变得更有趣,你愿意多去尝试多去练习,这才是最要紧的。 由题意知,就是计算两个数字…...
深入理解 Vuex:核心概念、API 详解与最佳实践
目录 Vuex 简介核心概念与工作流程核心 API 详解模块化开发 (modules)插件(Plugins)与扩展高级技巧与最佳实践 Vuex 简介 Vuex 是 Vue.js 的官方状态管理库,专为复杂应用设计,用于集中管理所有组件的共享状…...
成为一种国家战略范畴的新基建的智慧园区开源了。
智慧园区场景视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界…...
拜特科技助力科达制造,资金管理信息化迈入新阶段
近日,拜特科技成功签约科达制造股份有限公司(以下简称“科达制造”)资金管理系统升级项目。科达制造通过资金管理系统的不断迭代升级和优化,能够更加高效地管理和运用资金,提高企业的资金利用效率,满足企业…...
每日一题(小白)暴力娱乐篇20
这个题用瞪眼法解决,snakeaekns 代码如下👇 public static void main(String[] args) {Scanner scannew Scanner(System.in);System.out.println("aekns");scan.close();} 第二种方式:将snack拆解,按照大小进行排序。…...
Flutter iOS 项目中 VolumeControllerPlugin 报错解决方案
Flutter iOS 项目中 VolumeControllerPlugin 报错解决方案 在开发 Flutter 应用时,有时会遇到 iOS 项目构建失败的情况,其中一种较为常见的错误是与 VolumeControllerPlugin 相关的报错,错误信息如下: Could not build the prec…...
Java实战报错 tcp
为什么报错tcp Preview 从图片中的错误信息来看,程序遇到了 java.net.BindException,具体错误信息是 "Address already in use: bind"。这意味着你的程序试图绑定到一个已经被其他进程占用的端口(在本例中是9999端口)。…...
【补题】P10424 [蓝桥杯 2024 省 B] 好数(数位dp)
题意: 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。 给定一个正整数 N…...
控制 ElementUI el-table 树形表格多选框的显示层级
1、你可以通过 selectable 属性来控制哪些行可以选择(显示多选框) <el-table:data"tableData"row-key"id"default-expand-all:tree-props"{children: children, hasChildren: hasChildren}"select"handleSelect&…...
今日行情明日机会——20250409
今日行情还需要考虑关税对抗~ 2025年4月8日涨停的主要行业方向分析 1. 军工(19家涨停) 细分领域:国防装备、航空航天、军民融合。催化因素:国家安全战略升级、国防预算增加、重大军工项目落地预期。 2. 免税(15家涨…...
基础知识补充篇:什么是DAPP前端连接中的provider
专栏:区块链入门到放弃查看目录-CSDN博客文章浏览阅读352次。为了方便查看将本专栏的所有内容列出目录,按照顺序查看即可。后续也会在此规划一下后续内容,因此如果遇到不能点击的,代表还没有更新。声明:文中所出观点大多数源于笔者多年开发经验所总结,如果你想要知道区块…...
47常用控件_QWidget的toolTip属性
一个 GUI 程序,界面比较复杂, 按啥的很多~~ 当你把鼠标悬停到这个控件上的时候,就能弹出一个提示~~ setToolTip:设置提示内容 setToolTipDuring:设置提示的时间 toolTip 只是给用户看的.在代码中一般不需要获取到 toolTip. 代码示例: 设置按钮的 toolT…...
解密工业控制柜:认识关键硬件(PLC)
前言 作为一名视觉开发工程师,我们不仅要做到做好自己的工作,我们更需要在工业现场学习更多知识,最近网上流传很多,“教会徒弟,饿死师傅”;在自动化行业中,在项目下来很忙的时候,我们…...
PDF编辑,小白工具功能丰富多样,在线无需下载,操作便捷,新手小白必备
在当今数字化办公和学习的时代,PDF 文件的使用极为广泛,而小白工具的在线 PDF 浏览器以其强大且丰富的功能,成为了一款不可多得的优质 PDF 阅读工具,PDF编辑,在线无需下载,操作便捷,新手小白必备以下为您详细推荐: 功能…...
网络安全公司推荐:F5荣膺IDC全球Web应用与API防护领导者
API的广泛使用正推动安全实践的重大变革。研究表明,有41%的企业管理的API数量至少与应用数量相等,因此企业亟需实现全面的API防护。近日,IDC发布《IDC MarketScape:2024年全球Web应用和API防护企业平台供应商评估报告》࿰…...
WPF轮播图动画交互 动画缩放展示图片
WPF轮播图动画交互 动画缩放展示图片 效果如下图: XAML代码: <Window x:Class"Caroursel.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/20…...
玩转Docker | 使用Docker安装FileDrop文件共享工具
玩转Docker | 使用Docker安装FileDrop文件共享工具 前言一、FileDrop介绍FileDrop简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署FileDrop服务下载镜像创建容器检查容器状态检查服务端口安全设置四、访问FileDrop应用创建名称五、测试与使用…...
实战篇-主时钟约束
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 这是对B站傅里叶的猫视频时钟约束的笔记 一、主时钟约束 report_clock_networks …...
Oracle JDBC驱动 ojdbc14:使用指南与版本说明(附资源下载)
ojdbc14 是 Oracle 公司提供的 JDBC(Java 数据库连接)驱动程序,用于连接 Java 应用程序与 Oracle 数据库。 ojdbc14.jar包已下载:https://pan.quark.cn/s/5ee7841dcd9c 关键信息 用途:使 Java 应用程序能够连接 Orac…...
spring mvc 异常处理中@RestControllerAdvice 和 @ControllerAdvice 对比详解
RestControllerAdvice 和 ControllerAdvice 对比详解 1. 基本概念 注解等效组合核心作用ControllerAdviceComponent RequestMapping(隐式)定义全局控制器增强类,处理跨控制器的异常、数据绑定或全局响应逻辑。RestControllerAdviceControll…...
单元测试原则之——不要过度模拟
什么是过度模拟? 过度模拟(over-mocking)是指在单元测试中,模拟了太多依赖项,甚至模拟了本不需要模拟的简单对象或行为。过度模拟会导致: 测试代码变得复杂,难以阅读和维护。测试逻辑偏离了实际业务逻辑,无法验证真实代码的行为。忽略了被测单元与依赖项之间的真实交互…...
云轴科技ZStackCTO王为:AI Infra平台具备解决私有化AI全栈难题能力
4月1-2日,2025中国生成式AI大会在北京举办,该会议已成为国内AI领域最具影响力的产业峰会之一。云轴科技ZStack CTO王为受邀在“大模型”峰会上发表主题为《AI 原生实践:企业实际场景的 AI 赋能与 Infra 实践探索》演讲,并参加《De…...
牛客 小苯的Z串匹配
注意数组元素是0的情况 #include<iostream> using namespace std;int t; const int N2e510;int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t){long long n;cin>>n;long long a[N];for(int i0; i<n; i) cin>>a[i];stri…...
拜特科技受邀参加跨境电商行业分会,共探资金管理数字化与AI应用新路径
3月12日,由广东省首席信息官协会主办的“跨境电商行业分会——走进绿联科技”活动在深圳绿联科技圆满举行。作为专注于金融科技与资金管理数字化解决方案的领先提供商,拜特科技受邀参加此次会议,与行业精英共同探讨跨境电商企业的资金管理数字…...
贪心算法(17)(java)可被三整除的最大整数和
给你一个整数数组 nums,请你找出并返回能被三整除的元素 最大和。 示例 1: 输入:nums [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 …...
架构师面试(二十八):业务建模
问题 今天我们撇开纯技术,聊一下关于【业务建模】的话题。 何为业务建模?即通过易于理解的模型将业务中的关键问题准确表达出来。 业务建模是需求分析环节乃至整个软件生命周期中非常关键的一环,它几乎决定了软件的开发周期和成本。下面关…...
求教:vue中的find()函数的用法this.$set
需求:为了实现联动,当我在选择问题标题之后,后面几列的内容就会自动联动显示 方案一: 选完之后 直接 是this.questionList[index] this.selected; 这样的效果虽然改动了数组,但是页面上没有显示出来实际数组的内容 …...