- 博客(84)
- 资源 (2)
- 收藏
- 关注
原创 【WMS】核心知识体系 + 业务流程 + 落地场景总结(含流程图)
WMS核心知识体系与业务流程摘要 WMS系统涵盖入库、出库、库内管理三大核心流程,强调单货匹配、效率优先和库存精准。入库流程通过收货、质检、上架层层校验;出库流程结合摘果法/播种法提升效率;库内管理通过盘点、移库、补货优化库存。系统需与ERP、OMS等协同,实现数据同步与异常闭环(自动重推+人工兜底)。实际场景中,电商仓侧重效率(自动补货),工业仓注重合规(批次绑定),3PL仓需隔离多货主数据。关键原则包括操作留痕、异常处理和场景适配,面试需突出流程细节与闭环逻辑。
2026-02-09 15:06:31
842
原创 【Webpack】Webpack 打包速度提升
本文介绍了提升Webpack构建速度的优化方案。首先区分了构建速度(全流程耗时)和打包速度(核心环节耗时)的概念。然后从通用优化(升级Webpack、精准配置Loader、优化resolve)、开发环境优化(持久化缓存、HMR、Source Map选择)和生产环境优化(多线程Loader、缓存Loader、Tree Shaking)三个维度提供了具体方法。最后给出了高级优化建议(DLL/Module Federation、打包分析)和小白避坑指南(避免冗余插件、区分环境配置)。这些优化手段可显著提升构建效率
2026-02-09 15:04:47
682
原创 【Modbus】RS-232、RS-485 与 RS-422:通信标准原理与差异详解
本文详细解析了RS-232、RS-485和RS-422三种串行通信标准的原理与差异。RS-232采用单端信号传输,适用于短距离点对点通信;RS-485通过差分信号实现多点半双工通信,抗干扰能力强;RS-422则采用独立收发通道支持全双工点对点通信。三种标准在拓扑结构、通信距离、抗干扰能力等方面存在显著差异:RS-232最大距离15米,RS-485/422可达1200米;RS-485支持32个设备连接,而RS-232/422仅支持2个设备。工业场景中,RS-485因其优异的抗干扰性和多点连接能力成为首选,而R
2026-02-07 08:52:18
1342
原创 【力扣】2727. 判断对象是否为空
摘要:本文介绍了如何判断一个对象或数组是否为空。空对象不包含任何键值对,空数组不包含任何元素。提供了三种解决方法:1) 使用JSON.stringify将对象转为字符串后检查长度;2) 通过Object.keys获取键的数量判断;3) 使用for循环检查可迭代性。分析了每种方法的时间复杂度,并给出面试常见问题提示,如空对象定义、POJO概念等。
2026-02-07 08:45:48
865
原创 【力扣】2726. 使用方法链的计算器
本文介绍了如何设计一个支持方法链调用的计算器类Calculator,实现加法、减法、乘法、除法和乘方运算。关键点包括: 构造函数接收初始值result 各运算方法执行相应计算后返回this以支持链式调用 divide方法需检查除零错误并抛出异常 getResult方法返回最终计算结果 实现示例展示了链式调用如new Calculator(10).add(5).subtract(7).getResult() 时间复杂度O(1),空间复杂度O(1) 需要注意JavaScript浮点数运算精度问题
2026-02-06 15:29:42
314
原创 【力扣】2724. 排序方式
题目要求根据给定函数fn对数组arr进行升序排序。解决方案是利用JavaScript的Array.sort()方法,结合比较函数来实现。比较函数通过调用fn获取元素的排序依据值,然后比较这些值进行排序。示例展示了如何对数字、对象和嵌套数组等不同数据结构进行排序。关键点在于理解Array.sort()的工作原理、比较函数的使用方法,以及如何通过回调函数fn提取排序依据值。这种方法适用于各种数据类型,是处理自定义排序需求的通用解决方案。
2026-02-06 15:27:42
352
原创 【力扣】2722. 根据 ID 合并两个数组
题目要求合并两个包含id字段的对象数组arr1和arr2,返回按id升序排列的合并数组。合并规则是:相同id的对象合并属性(arr2优先),不同id的对象直接保留。示例展示了三种合并情况:无重复id、有重复id需合并属性、嵌套对象合并。提供了两种解法:方法1使用对象暂存合并结果后排序,复杂度O(nlogn);方法2利用Map结构存储和合并对象,同样需要排序。该问题适用于数据集成、社交媒体分析等需要合并多源数据的场景。
2026-02-05 11:00:02
757
原创 【力扣】2721. 并行执行异步函数
摘要 题目要求实现一个模拟Promise.all功能的函数promiseAll,该函数接收异步函数数组,返回一个新Promise。当所有输入Promise都成功时,按顺序返回结果数组;任一Promise失败时立即拒绝。关键点在于不使用内置Promise.all,手动处理Promise状态。解决方案需要: 创建新Promise来包装结果 并行执行所有异步函数 跟踪每个Promise的完成状态 在全部成功时resolve结果数组 在首次reject时立即reject 保持结果顺序与输入顺序一致 典型应用场景包括
2026-02-05 10:58:36
791
原创 【力扣】2705. 精简对象
本文介绍了力扣2705题"精简对象"的解决方案。题目要求移除对象或数组中所有包含假值的键(包括嵌套结构),返回精简后的结果。假值包括false、0、""、null、undefined和NaN。 文章提供了两种解决方案: 递归深度优先搜索(DFS):通过递归遍历对象/数组,重建不含假值的新结构。时间复杂度O(N),空间复杂度O(D)。 迭代深度优先搜索:使用显式堆栈替代递归,避免堆栈溢出风险。同样具有O(N)的时间和空间复杂度。 两种方法都通过深度优先遍历处理嵌套结构,
2026-02-04 16:56:19
746
原创 【力扣】2695. 包装数组
摘要 题目要求实现一个 ArrayWrapper 类,使其具有两种特殊行为: 两个实例相加时返回数组元素总和 调用 String() 时返回格式化的数组字符串 解决方案利用 JavaScript 的原型方法: 重写 valueOf() 方法实现加法运算时返回数组元素总和 重写 toString() 方法实现字符串转换时返回格式化数组 关键点: 通过原型继承修改内置方法实现特殊行为 加法运算时自动调用 valueOf() 字符串转换时自动调用 toString() 这种方法虽然不能真正重载运算符,但通过类型转
2026-02-04 16:55:35
1212
原创 【力扣】2694. 事件发射器
摘要 本文介绍了如何设计一个EventEmitter类,实现事件订阅和触发功能。核心功能包括: subscribe方法:接收事件名和回调函数,支持多个监听器,按订阅顺序执行回调,并返回包含unsubscribe方法的对象。 emit方法:触发指定事件,传递可选参数给回调函数,按订阅顺序返回所有回调结果。 实现要点: 使用Map存储事件与回调列表的映射 为每个订阅生成唯一ID以便取消订阅 按顺序执行回调并收集结果 示例展示了基本用法、参数传递和取消订阅场景。该设计遵循典型的事件驱动模式,适用于需要解耦组件通信
2026-02-01 18:41:12
688
原创 【力扣】2625. 扁平化嵌套数组
本文介绍了三种扁平化多维数组的方法:递归法、迭代队列法和迭代堆栈法。递归法通过逐层深入嵌套数组实现扁平化;迭代队列法利用队列按层级处理元素;迭代堆栈法则通过堆栈结构跟踪元素及其深度。三种方法的时间复杂度均为O(n*m),空间复杂度为O(m)或O(n)。递归法实现简洁但可能受调用栈限制,迭代方法更适合处理大规模数据。根据具体场景选择合适方法,可有效处理JSON数据、树遍历等需要扁平化嵌套结构的场景。
2026-02-01 18:39:35
729
原创 【力扣】2715. 执行可取消的延迟函数
本文介绍了如何实现一个可取消的延迟函数执行机制。通过使用setTimeout安排函数执行并存储计时器ID,然后提供cancelFn函数来调用clearTimeout取消执行。文章给出了两种实现方法:一种是使用闭包保存计时器ID,另一种是使用布尔标志控制执行。两种方法的时间复杂度均为O(1),但第一种方法能完全取消计时器更为高效。面试提示部分讨论了参数传递、上下文绑定等扩展问题,并指出了这种机制在用户界面等需要延迟执行但可能取消的场景中的实用价值。
2026-01-30 09:59:17
929
原创 【力扣】2677. 分块数组
摘要 本文介绍了数组分块问题的多种解决方案,给定数组arr和块大小size,要求将数组分割为指定大小的子数组。主要方法包括:1)暴力循环法,使用嵌套循环逐步构建子数组;2)切片法,利用数组的slice方法直接截取子数组;3)拼接法,结合splice和slice操作;4)归约法,使用reduce函数迭代构建分块。这些方法的时间复杂度多为O(n),空间复杂度为O(n)或O(1)。文章还列举了分块操作在分页、并行处理、图像处理等领域的实际应用场景。
2026-01-30 09:58:24
609
原创 【力扣】2637. 有时间限制的 Promise 对象
摘要 本文介绍了如何实现一个有时间限制的Promise函数,当异步操作超过指定时间时自动拒绝。提出了四种解决方案: 基础Promise方法:通过setTimeout强制拒绝,但会残留未清除的定时器 优化清除定时器:使用finally清理定时器避免内存泄漏 Promise.race方案:利用Promise.race竞速特性简洁实现 Async/Await方案:结合async/await语法实现,同样处理定时器清理 这些方法适用于需要控制异步操作执行时间的场景,如防止长时间运行进程阻塞或优化用户体验。文章通过示
2026-01-17 16:30:20
583
原创 【力扣】2631. 分组
摘要 本题要求实现数组的groupBy方法,根据回调函数fn返回的键对数组元素进行分组。解决方案有两种主要方法: for循环法:遍历数组,检查键是否存在,不存在则创建新数组,存在则追加元素 reduce法:使用reduce初始化空对象,动态创建分组数组并添加元素 两种方法的时间复杂度都是O(N),空间复杂度也是O(N)。该方法在前端开发中有广泛应用,如构建树结构、数据合并、图表分类等场景。实现时需注意回调函数必须返回字符串键值,且分组顺序需保持原数组顺序。
2026-01-17 16:29:20
632
原创 【力扣】2627. 函数防抖
摘要 本文介绍了力扣第2627题"函数防抖"的解决方案。题目要求实现一个防抖函数,该函数能延迟执行目标函数,并在延迟期间取消重复调用。文章详细解释了防抖的概念和应用场景,如搜索框输入和图表缩放优化。提供了两种实现方法:1) 使用setTimeout和clearTimeout的简洁方案;2) 使用setInterval和clearInterval的替代方案。第一种方案通过保存timeout引用,在每次新调用时清除前一个定时器并重新设置,确保只有最后一次调用会被执行。
2026-01-14 17:04:10
525
原创 【力扣】2622. 有时间限制的缓存
本文介绍了实现一个带过期时间的缓存类,提供了三种解决方案:1)使用setTimeout和clearTimeout结合类语法;2)使用函数语法实现相同逻辑;3)维护到期时间而非定时器。核心思路是通过Map存储键值对及定时器或到期时间,在set时处理覆盖逻辑,get时检查是否过期,count返回有效键数。第一种方案最简洁,通过定时器自动删除过期键;第三种方案则在查询时才检查过期状态。文中还讨论了缓存的应用场景和不同实现方式的内存管理考量。
2026-01-14 17:02:14
672
原创 【ERP】鼎捷T100开发之4GL语言(Genero BDL)的核心语法和使用方法
本文介绍了鼎捷T100系统中使用的Genero BDL(4GL)语言的核心语法和使用方法。主要内容包括:4GL语言基础与程序结构、变量与数据类型、运算符、流程控制、函数与程序结构、数据库操作、用户界面与表单交互、字符串与本地化处理等。重点阐述了T100开发实践中的命名规范、模块化设计、数据库访问以及编译执行工具链等关键知识点。文章详细说明了4GL语言特有的业务逻辑与界面分离设计、P-code编译执行机制,以及开发过程中常用的表单设计、本地化字符串处理等实用技术,为T100系统开发提供了全面的语法参考和实践指
2026-01-13 11:05:30
891
原创 【ERP】鼎捷T100单双档开发流程与总结
本文详细介绍了鼎捷T100 ERP系统中单档程序的开发流程。主要内容包括:1) 单档程序定义及开发核心流程,涵盖程序注册、表格设计、画面生成、规格设计等11个步骤;2) 核心概念与函数流程,重点说明查询、新增、修改、删除等标准操作流程;3) 画面与字段设计要点,包括参考字段、多语言字段等特殊字段处理;4) 单据编号管理方法;5) 开发工具与环境介绍;6) 命名规范要求。文章通过流程图和示意图详细展示了单档程序的开发规范和技术要点,为ERP系统开发者提供了完整的开发指导。
2026-01-13 10:55:40
1002
原创 【力扣】2725. 间隔取消
题目要求实现一个函数,能够立即调用给定函数fn并传入参数args,然后每隔t毫秒重复调用,直到在cancelTimeMs毫秒后被取消。提供了两种解决方案: 使用setInterval和clearInterval: 立即调用fn(...args) 设置定时器每隔t毫秒重复调用 返回取消函数cancelFn,调用时清除定时器 递归方法: 使用setTimeout递归调用 设置标志位控制是否继续执行 当取消时停止递归调用 两种方法的时间复杂度均为O(1),空间复杂度O(1)。第一种方法更简洁,直接使用内置定时器功
2025-10-24 11:01:50
691
原创 【力扣】2715. 执行可取消的延迟函数
本文介绍了如何在JavaScript中实现可取消的延迟函数执行。通过使用闭包和setTimeout,可以创建一个函数,在指定延迟后执行目标函数,同时提供取消功能。文章提供了两种实现方法:方法1使用clearTimeout直接取消计时器;方法2通过布尔标志控制函数执行。两种方法的时间复杂度均为O(1)。文中还包含面试常见问题解答,如apply方法的作用、处理this上下文、动态修改延迟等应用场景。该技术适用于需要延迟执行但可能中途取消的场景。
2025-10-24 11:01:02
833
原创 【力扣】2725. 间隔取消
文章摘要 该题目要求实现一个可取消的定时调用函数。给定函数fn、参数args和时间间隔t,需要立即调用函数,然后每隔t毫秒重复调用,直到在指定的cancelTimeMs时间调用取消函数。提供了两种解决方案: 使用setInterval和clearInterval: 立即调用fn 使用setInterval设置定时重复调用 返回一个取消函数,内部调用clearInterval停止定时器 使用递归和setTimeout: 通过递归调用和setTimeout实现间隔调用 使用标志位控制是否继续执行 两种方法的时间
2025-08-28 20:40:10
1097
原创 【力扣】2715. 执行可取消的延迟函数
本文介绍了如何实现一个可取消的延迟执行函数。通过使用setTimeout安排函数在指定延迟后执行,并返回一个取消函数cancelFn来阻止执行。文中提供了两种解决方案:一是使用闭包存储定时器ID并通过clearTimeout取消;二是使用布尔标志控制执行。两种方法的时间和空间复杂度均为O(1)。文章还包含示例代码和面试常见问题解答,适用于需要延迟执行但可能中途取消的场景,如表单提交、消息提示等。
2025-08-28 20:39:09
1001
原创 【C#】深入理解 Modbus 协议:从原理解析到C#代码实践
本文深入解析了Modbus工业通信协议及其C#实现。Modbus是一种主从式串行通信协议,广泛应用于工业自动化领域,主要包括RTU、ASCII和TCP/IP三种类型。文章详细介绍了协议的工作原理、数据解析方法,并提供了两个C#代码示例:使用SerialPort类实现Modbus RTU通信读取保持寄存器,以及使用TcpClient实现Modbus TCP/IP通信。这些内容为工业自动化系统开发提供了实用的技术参考和实现方案。
2025-08-27 09:31:00
1480
原创 【力扣】2704. 相等还是不相等
本文介绍了如何实现一个JavaScript测试辅助函数expect。该函数接收一个值val,返回包含两个方法的对象:toBe(val)和notToBe(val)。toBe方法在严格相等(===)时返回true,否则抛出"Not Equal"错误;notToBe方法在严格不等(!==)时返回true,否则抛出"Equal"错误。文章详细说明了解决方案,包括JavaScript对象返回、方法链和错误处理机制,并提供了实现示例,帮助开发者理解如何构建测试工具函数。
2025-08-27 09:19:23
1057
原创 【ERP】鼎捷T100接口开发操作指南——含接口调用与调试
本文介绍了鼎捷T100系统作为服务端时的接口开发与调用流程。主要内容包括:1) T100的RESTful API接口地址格式说明,2) 通过API测试工具和浏览器两种方式验证接口是否正常,3) 在azzi700作业中注册新接口服务的规范要求,4) 使用T100设计器下载和上传接口程序文件,5) 通过awsq990作业查询接口调用记录。文章提供了详细的步骤说明和截图示例,帮助开发者快速掌握T100系统接口开发的关键操作要点。
2025-08-26 09:43:47
2926
原创 【力扣】2703. 返回传递的参数的长度
本文介绍了力扣2703题的解决方案,要求编写一个返回参数数量的函数argumentsLength。文章比较了两种实现方法:一种是使用JavaScript的arguments对象直接获取参数长度,另一种是利用剩余参数语法...args将参数收集到数组中再获取长度。两种方法的时间复杂度和空间复杂度均为O(1)。文章还深入讲解了剩余参数和展开运算符的区别,以及JavaScript中参数对象与数组的异同,包括类型、方法支持和迭代方式等关键差异。最后提供了一个JavaScript数组常用方法和属性的参考列表。
2025-08-25 10:59:23
1003
原创 【力扣】2667. 创建 Hello World 函数——认识函数
这篇文章介绍了如何创建一个始终返回"Hello World"的JavaScript函数。文章首先提供了题目描述和示例,然后详细讲解了JavaScript函数的两种主要语法(函数语法和箭头语法),包括基础语法、匿名函数、IIFE、函数提升和闭包等概念。最后,文章给出了四种解决方案:使用函数语法和箭头语法的不同实现方式,以及结合剩余参数的高级用法。该问题旨在帮助读者理解JavaScript函数的基本概念和高阶函数的应用。
2025-08-25 10:57:31
928
原创 【力扣】2623. 记忆函数——函数转换
题目要求实现一个记忆函数,它能缓存函数调用的结果,避免重复计算。记忆化适用于纯函数,如求和、斐波那契和阶乘函数。通过缓存参数和结果,当相同参数再次调用时直接返回缓存值。文章还讨论了记忆化在Web开发中的应用,如缓存API调用、优化React组件渲染等,并指出其局限性和注意事项,如数据过时问题。最后提到记忆化在动态规划算法中的重要性,例如优化斐波那契数列计算。
2025-08-24 20:12:12
745
原创 【Element plus】官方文档补充:Vue3中对el-table的深度解析与特殊应用实用指南(含行/单元格样式、树形数据、虚拟列表、合并单元格、动态表头)
本文深入解析了Element Plus中el-table组件的row-class-name和cell-class-name属性,补充了官方文档未详述的实用技巧。重点介绍了如何通过回调函数动态设置行/单元格样式,包括复杂业务场景下的多条件判断应用。文章还提供了样式定义规范、性能优化建议以及常见问题解决方案,如使用深度选择器解决样式作用域问题。这些内容将帮助开发者更高效地实现表格数据可视化,满足不同业务场景下的样式定制需求。
2025-08-24 20:05:47
1495
原创 各种常用的串口助手工具分享
本文介绍了常用的串口调试工具,提供了下载链接(CSDN下载地址)和使用说明。文章参考了嵌入式博主"hxydj"的相关教程,详细讲解了各工具的操作方法。读者可通过博文链接获取完整的使用指南,适合嵌入式开发人员参考使用。
2025-06-29 23:57:55
415
原创 【IIS】必看!全图文介绍,Win11用 IIS 本地部署.net6 网站,轻松实现高效开发与测试
文章围绕在 Win11 用 IIS 本地部署 .NET 6 网站展开。先介绍安装 .NET Core 托管捆绑包和 IIS 及其配置;接着说明部署本地服务步骤,含打开 IIS、打包项目、添加网站等;又提及开放端口方法;最后针对 HTTP 错误 500.19、403.14 给出解决措施。
2025-03-22 10:11:02
3795
原创 【IIS】深度解析 IIS 中 502.5 错误:原因、排查与解决方案
在 IIS(互联网信息服务)环境下托管应用程序时,502.5 错误是开发人员和系统管理员经常遇到的棘手问题。此错误代码通常表示在处理 HTTP 请求时,IIS 与后端应用程序(如Core、Node.js 等)之间的通信出现故障。本文将深入探讨 502.5 错误的可能原因,并提供详细的排查和解决方案。
2025-03-22 09:37:13
1199
原创 【Cursor】AI 赋能的编程神器使用全攻略:安装、配置与无限使用技巧
Cursor 作为一款强大的 AI 代码编辑器,为开发者带来了高效、智能的编程体验。通过本文详细介绍的安装、配置、使用技巧和无限使用攻略,相信你已经能够充分发挥 Cursor 的优势,让编程变得更加轻松愉快。在使用过程中,不断探索 Cursor 的更多功能,结合实际项目需求,提升自己的编程效率和技能水平。同时,也要注意遵守相关使用规定,避免违规操作。希望 Cursor 能成为你编程道路上的得力助手,助力你在代码世界中创造更多精彩!全网最全面详细的Cursor使用教程,让开发变成聊天一样容易。
2025-03-17 15:00:01
8031
原创 【力扣】2665. 计数器 II——认识对象、闭包和代理
本题旨在介绍闭包和对象。建议你首先阅读关于计数器的题解,因为它包含了这里未讨论的闭包的基本信息。
2025-03-12 14:26:45
937
原创 【力扣】2635. 转换数组中的每个元素——认识循环的性能开销
这个问题旨在介绍回调函数callbacks回调函数被定义为作为参数传递给另一个函数的函数。对回调函数的理解非常关键,因为几乎在任何 JavaScript 代码库中它都被频繁使用,并且对于编写可重用的代码至关重要。
2025-03-12 14:25:38
530
原创 【力扣】2634. 过滤数组中的元素
这个问题要求你编写一个根据回调函数的输出从数组中筛选元素的函数。它与map和reduce一样,是 JavaScript 中最常用和重要的函数之一。
2025-03-11 13:55:59
1008
Modbus协议对接测试工具:Modbus Poll,Modbus Slave
2025-08-26
常用的串口工具助手集合
2025-06-29
基于遗传算法的车间调度算法-matlab源码(含甘特图)
2022-05-20
基于遗传算法求解车间调度python源码
2022-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅