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

ECMAScript 7~10 新特性

ECMAScript 7 新特性

ECMAScript 6 新特性(一)

ECMAScript 6 新特性(二)

ECMAScript 7~10 新特性(本文)

1. 数组方法

Array.prototype.includes() 用来检测数组中是否包含指定元素,返回布尔值(存在返回 true,不存在返回 false)

const mingzhu = ["西游记", "水浒传", "三国演义", "红楼梦"];console.log(mingzhu.includes("西游记")); // true
console.log(mingzhu.indexOf("西游记"));
console.log(mingzhu.includes("斗破苍穹")); // false

indexOf() 方法类似,但是 indexOf() 方法返回的是第一个匹配项的索引,没有则返回 -1。

2. 指数操作符

在 ES7 中引入指数运算符 **,用来实现幂运算,功能与 Math.pow() 结果相同

console.log(2 ** 3);
console.log(Math.pow(2, 3)); // 与上面等价

ECMAScript 8 新特性

1. async 和 await

async 和 await 两种语法结合可以让异步代码像同步代码一样,解决异步编程的方案

1.1 async 函数

async 函数的返回值为 promise 对象

  1. 返回的结果不是 Promise 对象,则函数的返回结果就是成功的 Promise 对象

    async function fn() {return 1; // 返回值不为 Promise 对象
    }
    console.log(fn()); // Promise {<resolved>: 1}
    
  2. 抛出错误,返回结果是一个失败的 Promise 对象。

    async function fn() {throw new Error('出错了');
    }
    console.log(fn());
    
  3. 返回结果是 Promise 对象,则函数的返回结果就是这个 Promise 对象。

    async function fn() {return new Promise((resolve, reject) => {// resolve('成功');reject("失败");});
    }
    console.log(fn());
    

1.2 await 表达式

  1. await 必须写在 async 函数中
  2. await 右侧的表达式一般为 promise 对象
  3. await 返回的是 promise 成功的值
  4. await 的 promise 失败了,就会抛出异常,需要通过 try...catch 捕获处理
const p = new Promise((resolve, reject) => {// resolve('成功');reject("失败");
});
async function main() {try {let result = await p;console.log(result);} catch (err) {console.log(err);}
}

1.3 结合使用

async 和 await 结合使用发送 AJAX 请求

function sendAJAX(url) {return new Promise((resolve, reject) => {// 1. 创建对象const xhr = new XMLHttpRequest();// 2. 初始化xhr.open("GET", url);// 3. 发送xhr.send();// 4. 事件绑定xhr.onreadystatechange = function () {if (xhr.readyState === 4) {if (xhr.status >= 200 && xhr.status < 300) {resolve(xhr.responseText);} else {reject(new Error(xhr.statusText));}}};});
}// then 方法测试
//   sendAJAX("https://api.oick.cn/dutang/api.php").then(
//     (value) => { console.log(value); },
//     (reason) => { console.error(reason); }
//   );// async 和 await 方法测试
async function main() {let result = await sendAJAX("https://api.oick.cn/dutang/api.php");console.log(result);
}
main();

2. 对象方法扩展

2.1 Object.values 和 Object.entries

  1. Object.values() 方法返回一个给定对象的所有可枚举属性值的数组

  2. Object.entries() 方法返回一个给定对象自身可遍历属性 [key, value] 的数组

    将对象转换为数组

const school = {name: "学院",address: "河南省郑州市",
};// 获取对象所有的键
console.log(Object.keys(school)); // ["name", "address"]// 获取对象所有的值
console.log(Object.values(school)); // ["学院", "河南省郑州市"]// entries 方法返回一个数组,数组的每一项是一个键值对数组
console.log(Object.entries(school)); // [["name", "学院"], ["address", "河南省郑州市"]]

2.2 Object.getOwnPropertyDescriptors

描述对象所有属性的详细信息

对象中属性值的基本配置信息有

配置说明
value属性的值
writabletrue/false是否可写
enumerabletrue/false是否可枚举
configurabletrue/false是否可配置
const obj = Object.create(null, {name: {value: "张三",writable: true,enumerable: true,configurable: true,},
});

ECMAScript 9 新特性

1. Rest/spread 参数

Rest 参数与 spread 扩展运算符在 ES6 中已经引入,不过 ES6 中只针对于数组,在 ES9 中为对象提供了像数组一样的 rest 参数和扩展运算符

  1. Rest 参数

    function connect({ host, port, ...user }) {console.log(host);console.log(port);console.log(user);// { username: 'admin', password: '123456', type: 'admin' }
    }connect({host: "localhost",port: 8080,username: "admin",password: "123456",type: "admin",
    });
    
  2. 扩展运算符

    const obj1 = { a: 1, b: 2, c: 3 };
    const obj2 = { d: 4, e: 5 };const newObj = { ...obj1, ...obj2 };console.log(newObj);
    // { a: 1, b: 2, c: 3, d: 4, e: 5 }
    

2. 正则表达式

2.1 命名捕获分组

ES9 允许命名捕获组使用符号 ? ,这样获取捕获结果可读性更强

let str = "<a href='http://www.baidu.com'>百度</a>";// 需求:提取 url 与 文本内容// 1. 使用正则匹配
// let reg = /<a href='(.*)'>(.*)<\/a>/;
// const result = reg.exec(str);
// console.log(result);// 2. 使用命名捕获分组
let reg = /<a href='(?<url>.*)'>(?<text>.*)<\/a>/;
const result = reg.exec(str);
console.log(result.groups.url);
console.log(result.groups.text);

exec 方法是 JavaScript 中正则表达式对象的一个方法,用于在字符串中执行搜索匹配操作。它的作用是根据正则表达式查找字符串中的匹配项,并返回一个结果数组或 null

在使用正则表达式进行匹配时,括号 () 在正则表达式中被称为捕获组(capturing group)。捕获组的作用是将其括号内的内容作为一个整体进行匹配,并且在匹配成功后,可以将这部分内容单独提取出来。

2.2 反向断言

ES9 支持反向断言,通过对匹配结果前面的内容进行判断,对匹配进行筛选。

let str = "helloworld啊吧啊吧4545啦啦啦";// 正向断言
// const reg = /\d+(?=啦)/;
// const result = reg.exec(str);// 反向断言
const reg = /(?<=吧)\d+/;
const result = reg.exec(str);console.log(result);

2.3 dotAll 模式

正则表达式中点 . 匹配除回车外的任何单字符,标记 s 改变这种行为,允许行终止符出现

let str = `<ul><li><a>肖申克的救赎</a><p>上映时间:1994-09-10</p></li><li><a>阿甘正传</a><p>上映时间:1994-06-05</p></li></ul>`;const reg = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p>/gs;let result;
let data = [];
while ((result = reg.exec(str))) {// console.log(result);data.push({ title: result[1], time: result[2] });
}
console.log(data);

ECMAScript 10 新特性

1. 对象扩展方法

Object.fromEntries() 方法,将键值对数组转换为对象,与 ES8 中 [Object.entries](#2.1 Object.values 和 Object.entries) 方法相互为逆运算

const result = Object.fromEntries([ ["name", "Tom"], ["age", 25] ]);console.log(result); // { name: 'Tom', age: 25 }
// Map 对象
const m = new Map();
m.set("name", "Tom");
m.set("age", 18);const result = Object.fromEntries(m);
console.log(result); // { name: 'Tom', age: 18 }

2. 字符串方法扩展

trimStart() 方法用于去除字符串开头的空白字符

trimEnd() 方法用于去除字符串结尾的空白字符

let str = "  hello world  ";
console.log(str);
console.log(str.trimStart());
console.log(str.trimEnd());

3. 数组方法扩展

3.1 flat

Array.prototype.flat(depth) 方法将多维数组转换为低维数组

  • depth 参数:指定要提取嵌套数组的结构深度,默认值为 1,若将值设为 Infinity 则提取到最大深度。
// 示例1:默认深度为1
const arr1 = [1, 2, [3, 4]];
console.log(arr1.flat()); // [1, 2, 3, 4]// 示例2:深度为2
const arr2 = [1, 2, [3, 4, [5, 6]]];
console.log(arr2.flat(2)); // [1, 2, 3, 4, 5, 6]// 示例3:使用 Infinity 展平所有嵌套数组
const arr3 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
console.log(arr3.flat(Infinity)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]// 示例4:处理空项
const arr4 = [1, 2, , 4, 5];
console.log(arr4.flat()); // [1, 2, 4, 5]

3.2 flatMap

Array.flatMap(callback(currentValue[, index[, array]])[, thisArg]) 类似于 map 和 flat 方法的结合体,如果 map 方法的回调函数返回的是数组,则会展开返回的数组(降低维度)

  • callback:生成新数组元素的函数,使用三个参数:
    • currentValue:当前正在数组中处理的元素。
    • index(可选):数组中正在处理的当前元素的索引。
    • array(可选):被调用的 map 数组。
  • thisArg(可选):执行 callback 函数时,用于 this 的值。
const arr = [1, 2, 3, 4, 5];
const result = arr.flatMap((item) => [item * 10]);
console.log(result); // [10, 20, 30, 40, 50]

4. Symbol 扩展

Symbol.prototype.description 用来描述 Symbol 的用途,可以用来在控制台中显示 Symbol 的信息。

let s = Symbol("学院");
console.log(s.description); // 学院

相关文章:

ECMAScript 7~10 新特性

ECMAScript 7 新特性 ECMAScript 6 新特性&#xff08;一&#xff09; ECMAScript 6 新特性&#xff08;二&#xff09; ECMAScript 7~10 新特性&#xff08;本文&#xff09; 1. 数组方法 Array.prototype.includes() 用来检测数组中是否包含指定元素&#xff0c;返回布尔值&…...

leetcode_1. 两数之和_java

1. 两数之和https://leetcode.cn/problems/two-sum/ 1、题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你…...

Mysql索引(四)

1、B树&#xff1a;B树即平衡查找树&#xff0c;一般理解为平衡多路查找树&#xff0c;也称为B-树、B_树。是一种自平衡树状数据结构&#xff0c;能对存储的数据进行O(log n)的时间复杂度进行查找、插入和删除&#xff1b; 1&#xff09;每个节点占用一个盘块的磁盘空间&#x…...

力扣——【1991. 找到数组的中间位置】

#前缀和思想 主要利用递推的思想&#xff0c;将数列的前n&#xff01;项和存到一个新数列中&#xff0c;递推公式可能需要自己推导 一个数列的值等于另一个数列的第i个元素加上这一个数列的第i-1个元素 同时需要初始化这个数列的第一个元素另一个数列的第一个元素 #思路 本…...

在 Linux 系统(ubuntu/kylin)上安装 Docker

在 Linux 系统上安装 Docker 的步骤如下(以 Ubuntu/Debian 和 CentOS/RHEL 为例): 请用./check-config config检查内核是否支持,necessarily 必须全部enable。 以下是脚本自行复制运行: #!/usr/bin/env sh set -eEXITCODE=0# bits of this were adapted from lxc-checkco…...

【实证分析】数智化转型对制造企业全要素生产率的影响及机制探究(1999-2023年)

数智化转型是实现数字经济与实体经济深度融合,推动制造企业高质量可持续发展的必然选择,也是加快新质生产力发展的重要抓手。参照宋冬林&#xff08;2025&#xff09;的做法&#xff0c;对来自科技进步与对策《数智化转型对制造企业全要素生产率的影响及机制探究——基于中国制…...

lower_bound

在C中&#xff0c;lower_bound 返回的是一个迭代器&#xff08;iterator&#xff09;&#xff0c;而不是直接的下标位置。因此&#xff0c;为了得到数组中的索引&#xff08;即 pos1&#xff09;&#xff0c;你需要用返回的迭代器减去数组的起始地址&#xff08;num&#xff09…...

biblatex 的 Biber 警告​​:tex文件运行无法生成参考文献和目录

原因​​&#xff1a;使用了 biblatex 管理参考文献&#xff0c;但未运行 biber 生成参考文献数据。 ​​解决​​&#xff1a;更新 LaTeX Workshop 配置 修改你的 settings.json&#xff0c;添加 biber 工具并更新编译流程&#xff1a; {"latex-workshop.latex.tools&…...

解锁 MCP:模型上下文协议的介绍与应用​,技术解析与应用场景

欢迎来到涛涛聊AI,这几天MCP很火,咱们一起学习下吧。 一、什么是 MCP MCP,即 Model Context Protocol(模型上下文协议),是由 Anthropic 推出的一个具有创新性的开放协议 。它的核心目标是统一 LLM 应用与外部数据源和工具之间的通信方式,为 AI 开发打造标准化的上下文…...

十二种存储器综合对比——《器件手册--存储器》

存储器 名称 特点 用途 EEPROM 可电擦除可编程只读存储器&#xff0c;支持按字节擦除和写入操作&#xff0c;具有非易失性&#xff0c;断电后数据不丢失。 常用于存储少量需要频繁更新的数据&#xff0c;如设备配置参数、用户设置等。 NOR FLASH 支持按字节随机访问&…...

对重大保险风险测试的算法理解

今天与同事聊到重大保险风险测试&#xff0c;借助下面链接的文章&#xff0c; 谈IFRS 17下的重大保险风险测试 - 知乎 谈一下对下图这个公式的理解。 尤其是当看到下面这段文字的解释时&#xff0c;感觉有些算法上的东西&#xff0c;需要再澄清一些。 首先&#xff0c;上面文…...

App Cleaner Pro for Mac 中 Mac软件卸载工具

App Cleaner Pro for Mac 中 Mac软件卸载工具 一、介绍 App Cleaner & Uninstaller Pro Mac破解&#xff0c;是一款Mac软件卸载工具&#xff0c;残余垃圾清除工具&#xff01;可以卸载应用程序或只删除不需要的服务文件&#xff0c;甚至可以删除以前删除的应用程序中的文…...

【操作系统】线程同步:原理、方法与实践

一、线程同步的核心概念 1.1 为什么需要线程同步&#xff1f; 在多线程环境中&#xff0c;当多个线程并发访问共享资源&#xff08;如内存、文件、数据库等&#xff09;时&#xff0c;可能会引发数据竞争&#xff08;Race Condition&#xff09;&#xff0c;导致数据不一致或…...

vue实现二维码生成器和解码器

vue实现二维码生成器和解码器 1.生成基本二维码&#xff1a;根据输入的value生成二维码。 2.可定制尺寸&#xff1a;通过size调整大小。 3.颜色和背景色&#xff1a;设置二维码颜色和背景。 4.静区&#xff08;quiet zone&#xff09;支持&#xff1a;通过quietZone调整周围的…...

p2p的发展

PCDN&#xff08;P2P内容分发网络&#xff09;行业目前处于快速发展阶段&#xff0c;面临机遇与挑战并存的局面。 一、发展机遇 技术融合推动 边缘计算与5G普及&#xff1a;5G的高带宽、低延迟特性与边缘计算技术结合&#xff0c;显著提升PCDN性能&#xff0c;降低延迟&#x…...

DeepSeek提示词实战大全:提示词合集和使用技巧

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。 知行合一,不写水文,喜欢可关注,分享AI算法干货、技术心得。 更多文章可关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 【数据集篇】更多阅读: 大语言模型常见任务及评测数据集…...

23种设计模式生活化场景,帮助理解

以下是 23种设计模式的生活化场景 及其核心对比&#xff0c;通过日常例子和比喻帮助理解它们的本质区别和应用场景&#xff1a; 创建型模式&#xff08;5种&#xff09; 1. 工厂方法&#xff08;Factory Method&#xff09; • 场景&#xff1a;快餐店的点餐系统。 • 问题&a…...

Kotlin 学习-方法和参数类型

/*** kotlin 的方法有三种* */fun main() {/*** 方法一* 1.普通类的成员方法申明与调用* &#xff08;1&#xff09;需要先构建出实例对象&#xff0c;才能访问成员方法* &#xff08;2&#xff09;实例对象的构建只需要在类名后面加上()* */Person().test()/*** 方法二&#x…...

Java 解析日期格式各个字段含义温习

背景 今天解析了一个不常见的日期格式 「10-Mar-2025 16:30:47.869」&#xff0c;对应的 Java 日期格式是 dd-MMM-yyyy HH:mm:ss.SSS &#xff0c;而且跟 Local 语言环境有关。 本文记录这个简单的解析过程&#xff0c;顺便回忆一下日期格式各个字段。毕竟平时只用了常见的 y…...

OpenBayes 一周速览|1分钟生成完整音乐,DiffRhythm人声伴奏一键搞定; Stable Virtual Camera重塑3D视频创作

公共资源速递 5 个数据集&#xff1a; * 302 例罕见病病例数据集 * DRfold2 RNA 结构测试数据集 * NaturalReasoning 自然推理数据集 * VenusMutHub 蛋白质突变小样本数据集 * Bird Vs Drone 鸟类与无人机图像分类数据集 2 个模型&#xff1a; * Qwen2.5-0mni * Llama…...

SpringBoot 数据库MySql的读写分离 多数据源 Shardingsphere高并发优化

介绍 传统的 MySQL 架构中&#xff0c;所有的数据库操作&#xff08;包括读操作和写操作&#xff09;都在同一个数据库实例上进行。随着应用程序的规模增长&#xff0c;单一数据库实例可能会成为瓶颈&#xff0c;无法满足高并发的需求。为了优化性能&#xff0c;可以将数据库的…...

SQLI漏洞公开报告分析

文章目录 1. 闭合 )2. 邀请码|POST参数|时间盲注 | **PostgreSQL**3. POST|order by参数|布尔盲注|Oracle4. SOAP请求|MSSQL|布尔盲注5. MySQL 时间盲注漏洞6. GET|普通回显注入7. ImpressCMS 1.4.2 | CVE | POST | 布尔盲注8. Mysql | post | 布尔/时间盲注9. 登录口 | post |…...

并行和并发有什么区别?

1. 定义 并行是在同一时刻执行多个任务。并发是在相同的时间段内执行多个任务&#xff0c;任务可能交替执行&#xff0c;通过调度实现。 2. 区别 执行方式&#xff1a; 并发&#xff1a;多个任务交替进行&#xff0c;任务并不一定同时执行&#xff0c;只是在同一时间段内处理…...

Elasticsearch 全面解析

Elasticsearch 全面解析 前言一、简介核心特性应用场景 二、核心原理与架构设计1. 倒排索引&#xff08;Inverted Index&#xff09;2. 分片与副本机制&#xff08;Sharding & Replication&#xff09;3. 节点角色与集群管理 三、核心特点1. 灵活的查询语言&#xff08;Que…...

SQL 中的 NULL 处理

NULL 在 SQL 中表示缺失、未知或不适用的数据值&#xff0c;它与空字符串或零值不同。SQL 对 NULL 有特殊的处理规则&#xff1a; NULL 的基本特性 比较运算&#xff1a;任何与 NULL 的比较都返回 UNKNOWN&#xff08;既不是 TRUE 也不是 FALSE&#xff09; SELECT * FROM tab…...

2025常用的ETL 产品推荐:助力企业激活数据价值

在当今数字化时代&#xff0c;企业面临着海量数据的挑战与机遇&#xff0c;ETL&#xff08;Extract, Transform, Load&#xff09;工具作为数据整合与分析的关键环节&#xff0c;其重要性日益凸显。ETL 厂商众多&#xff0c;各有优势&#xff0c;本文将从多个维度进行分析&…...

深入解析:Python 爬取淘宝商品券后价

在电商领域&#xff0c;淘宝作为国内领先的电商平台&#xff0c;拥有海量的商品和丰富的优惠活动。对于技术开发者来说&#xff0c;获取淘宝商品的券后价是实现电商应用功能的重要环节。本文将详细介绍如何通过淘宝开放平台的 API 接口获取商品的券后价&#xff0c;并提供实际的…...

25.4.10学习总结

关于消除警告 警告: Loading FXML document with JavaFX API of version 23.0.1 by JavaFX runtime of version 17.0.6 对应这条警告&#xff0c;我的处理方式是&#xff0c;将IDEA的默认javaFX的库换成自己下载的javaFX的库。 我用的javaFX的库如下&#xff1a; javaFX-24…...

【XML基础-2】深入理解XML中的语义约束:DTD详解

XML&#xff08;可扩展标记语言&#xff09;作为数据交换的标准格式&#xff0c;在Web服务和应用程序间数据传递中扮演着重要角色。而确保XML文档结构正确性和语义一致性的关键&#xff0c;就在于文档类型定义&#xff08;DTD&#xff09;。本文将全面解析DTD的概念、语法结构、…...

SkyWalking + ELK 全链路监控系统整合指南

一、架构设计图 二、核心组件部署 1. SkyWalking 集群部署 yaml: # docker-compose-skywalking.yml version: 3.8services:oap:image: apache/skywalking-oap-server:9.7.0ports:- "11800:11800" # gRPC- "12800:12800" # HTTPenvironment:SW_STORAGE: …...

LeetCode hot 100—编辑距离

题目 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 示例 示例 1&#xff1a; 输入&#xff1a;word1 "horse", word2 &q…...

SAP系统年终结算出错

问题描述&#xff1a;2024年采购订单发票校验过账到2024年时提示错误如下&#xff1a; 问题原因&#xff1a;2024年全部未结束的采购申请和订单被结转到2025年。 解决方法&#xff1a;用事务代码FMJ3冲销此采购订单结转。...

在 Dev-C++中编译运行GUI 程序介绍(二)示例:祝福程序

在 Dev-C中编译运行GUI 程序介绍&#xff08;二&#xff09;示例&#xff1a;祝福程序 前期见&#xff1a; 在 Dev-C中编译运行GUI 程序介绍&#xff08;一&#xff09;基础 https://blog.csdn.net/cnds123/article/details/147019078 示例1、祝福程序 本文中的这个祝福程序是…...

Uniapp使用onShow语法报before initialization

一、错误原因分析 函数未完成初始化时被调用 • 当你在 onShow 生命周期中调用 getUserMessagePlan() 时&#xff0c;如果该函数的定义位于调用代码的下方&#xff08;如示例中的顺序&#xff09;&#xff0c;JavaScript 引擎会因 变量提升规则 抛出此错误。 • 示例代码结构&a…...

大模型在儿童急性淋巴细胞白血病(ALL)-初治患者诊疗中应用的研究报告

目录 一、绪论 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与内容 二、大模型技术与儿童 ALL 相关知识 2.1 大模型技术原理与特点 2.2 儿童 ALL 的病理生理与诊疗现状 三、术前风险预测与手术方案制定 3.1 术前数据收集与预处理 3.2 大模型预测术前风险 3.…...

如何选择适合机床的丝杆支撑座型号?

在机床中选择丝杆支撑座型号时&#xff0c;需综合考虑机械性能、安装条件及应用需求&#xff0c;接下来我们一起来看看详细的选型指南&#xff01; 1、‌适配性‌&#xff1a;丝杆支撑座应与所使用的滚珠丝杆完全适配&#xff0c;确保两者在尺寸、规格、性能等方面相互匹配。 2…...

「The Road to Web3 Cloud」香港活动回顾|波卡的 Web3 Cloud 愿景

在区块链基础设施的发展浪潮中&#xff0c;Polkadot 正在迈出决定性的一步&#xff1a;打造一个属于 Web3 的 “云服务平台”。如果说 Bitcoin 创造了一个计算器&#xff0c;以太坊创造了一个计算机&#xff0c;那么 Polkadot 正在做的则是构建链上的 “云服务器”。它的目标是…...

PostgreSQL-容器运行时索引修复

在 Docker 中运行的 PostgreSQL 数据库如果索引损坏&#xff0c;可以通过以下步骤进行修复。索引损坏可能会导致查询性能下降或数据不一致&#xff0c;因此需要及时处理。 1. 进入 PostgreSQL 容器 首先&#xff0c;进入运行 PostgreSQL 的 Docker 容器&#xff1a; <BASH&…...

Vanna + qwq32b 实现 text2SQL

Vanna 是一个开源的 Text-2-SQL 框架&#xff0c;主要用于通过自然语言生成 SQL 查询&#xff0c;它基于 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;技术。Vanna 的核心功能是通过训练一个模型&#xff08;基于数据库的元数据和用户提…...

100V5A同步降压大功率芯片WD5105:高效电源管理的卓越之选

100V5A同步降压大功率芯片WD5105&#xff1a;高效电源管理的卓越之选 在现代电子设备的复杂电源架构中&#xff0c;对高效、稳定且可靠的电源管理芯片需求日益增长。WD5105作为一款100V5A同步降压大功率芯片&#xff0c;凭借其出色的性能、全面的保护机制以及广泛的应用适应性…...

springboot中测试python脚本:ProcessBuilder

目录 一.添加Jython依赖 二.使用步骤 1. 创建 ProcessBuilder 实例 2. 设置工作目录&#xff08;可选&#xff09; 3. 合并错误流&#xff08;可选&#xff09; 4. 启动进程 5. 处理输入输出流 6. 等待进程完成 7.完整案例 三.注意事项 ProcessBuilder是jdk提供的脚本…...

Google Chrome下载受限制的解决方案【方法指南】

在国内使用网络时&#xff0c;部分用户在尝试访问Google Chrome官网下载谷歌浏览器时&#xff0c;常常遇到网页无法打开或文件下载失败的情况。这种下载受限制的问题多由网络访问政策或DNS解析异常导致。为了正常获取Google Chrome的最新版安装程序&#xff0c;用户需要通过一些…...

mysql-锁的算法(记录锁、间隙锁、临键锁)

1.行锁的三种算法 有3种行锁算法&#xff0c;分别是&#xff1a; Record Lock&#xff1a;单个行记录上的锁&#xff0c;没有主键&#xff0c;会使用隐式的主键进行锁定Gap Lock&#xff1a;间隙锁&#xff0c;锁定一个范围&#xff0c;但不包含记录本身Next-Key Lock&#x…...

SAP Business One系统标准功能之外的不允许负库存控制

SqlServer版本写法&#xff1a; --在存储过程SBO_SP_TransactionNotification里加上这段代码&#xff0c;记得定义一个全局变量用于接收提醒具体是哪个物料 IF transaction_type IN (A) BEGINIF EXISTS (SELECT 1 FROM OIVL T0INNER JOIN OITW T1 ON T0.ItemCode T1.ItemCode…...

AI与5G的融合:如何实现更快速、更智能的物联网应用?

引言 AI和5G的结合&#xff0c;正在加速物联网&#xff08;IoT&#xff09;应用的发展&#xff0c;让万物互联变得更加智能、高效。5G提供超高速率、低时延和海量连接的网络能力&#xff0c;而AI则赋予物联网设备更强的数据分析、预测和自动决策能力。当AI与5G融合&#xff0c;…...

Redis的哨兵

Redis的哨兵 Sentinel 一.哨兵概念1.相关名词解释图 二.主节点恢复方式1.人工恢复主节点故障流程图2.哨兵自动恢复主节点流程 三.使用docker搭建环境1.安装docker-compose2.安装docker3.停止之前的redis服务器4.使用docker获取到redis的镜像5.使用docker-compose进行容器编排创…...

初识Redis · 简单理解Redis

目录 前言&#xff1a; 分布式系统 开源节流 认识Redis 负载均衡 缓存 微服务 前言&#xff1a; 本文只是作为Redis的一篇杂谈&#xff0c;简单理解一下Redis为什么要存在&#xff0c;以及它能做到和它不能做到的事儿&#xff0c;简单提及一下它对应的优势有什么&#…...

Python设计模式-抽象工厂模式

1. 什么是抽象工厂模式 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一种方式来创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。这种模式是所有形式的工厂模式中最为抽象和最具一般性的一种。…...

【中检在线-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…...

第16届蓝桥杯单片机模拟试题Ⅲ

试题 代码 sys.h #ifndef __SYS_H__ #define __SYS_H__#include <STC15F2K60S2.H> //sys.c extern unsigned char UI; //界面标志(0湿度界面、1参数界面、2时间界面) extern unsigned char time; //时间间隔(1s~10S) extern bit ssflag; //启动/停止标志…...