- 博客(31)
- 收藏
- 关注
原创 Node.js 流操作
Node.js 流是处理大量数据的核心机制,通过四种基本类型(可读、可写、双工、转换)和管道操作,可以高效地处理文件、网络数据等场景。使用流能显著降低内存占用,提高应用程序的性能和响应能力,是构建高性能Node.js应用的必备技能。掌握流操作后,开发者可以轻松处理GB级文件、实现高效的数据转换流水线,并构建响应迅速的网络应用。
2025-12-26 11:21:35
169
原创 Node.js Path 模块
path跨平台一致性:抽象了不同操作系统的路径差异安全性增强:提供标准化的路径处理,减少路径遍历漏洞开发效率:简化复杂的路径操作逻辑代码可维护性:统一的 API 使代码更清晰易懂在实际开发中,应始终使用path模块而非字符串拼接来处理路径,同时注意结合fs模块进行实际的文件系统操作验证。对于现代 Node.js 应用,还可以考虑使用 TypeScript 的类型安全来进一步加强路径操作的安全性。关键要点始终使用而非字符串拼接处理用户输入路径时必须验证和规范化理解resolve()和。
2025-12-25 17:36:20
622
原创 小白也能看懂的雪花 ID 的原理
本文介绍了雪花ID(Snowflake ID)的生成原理与JavaScript实现方法。雪花ID是一种64位分布式唯一ID,由时间戳(41位)、机器ID(10位)和序列号(12位)组成,支持高并发场景下的ID生成。文章详细解析了位运算实现逻辑,包括时间戳处理、序列号自增和时钟回拨等关键问题,并提供了完整的代码示例。同时指出了实际应用中的注意事项,如BigInt使用、机器ID分配策略等。该方案适用于分布式系统、数据库主键等场景,有效期可达69年。文末还推荐了现成的npm包,并建议理解原理后自行实现以获得更好控
2025-12-25 11:22:47
399
原创 @clack/prompts 命令行终端中构建交互式用户界面
是一个轻量、美观且开发者友好的Node.js库,用于在命令行终端中构建交互式用户界面。它提供了一系列样式现代的提示组件,支持异步操作,并包含完整的类型定义(TypeScript),能够显著提升命令行工具的用户体验。// 应用自定义主题setTheme({color: {});
2025-12-24 13:28:37
330
原创 Java基础
修饰符同类同包子类不同包说明public✔✔✔✔完全公开protected✔✔✔✘子类和同包可访问default✔✔✘✘包内可见private✔✘✘✘仅本类可见// 抽象类 - 不能实例化// 抽象方法 - 没有实现体// 具体方法 - 可以有实现// 具体类必须实现所有抽象方法@Override// 使用// 多态。
2025-12-15 15:56:01
330
原创 MySQL 入门介绍
MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,现属于 Oracle 旗下。它使用SQL(结构化查询语言)进行数据库管理。
2025-12-12 15:47:21
297
原创 Map数据哈希冲突原因
链表中的所有节点都属于同一个数组下标(桶)不需要在节点中存储下标信息,因为:存储时:通过哈希计算确定下标,将节点放入对应桶查找时:同样计算下标,在对应桶的链表中查找区分不同键值对是通过比较节点的hash值和key值,而不是通过下标这种设计使得哈希表既保持了数组的快速随机访问(O(1)定位桶),又能通过链表处理冲突,是空间和时间效率的良好平衡。
2025-12-10 11:10:56
292
原创 NodeJS基础
Node.js 在高并发 I/O 场景下表现出色,特别适合实时应用和微服务。它的异步特性和 JavaScript 生态使其成为快速开发的优秀选择,但在 CPU 密集型任务和需要强类型系统的场景下可能不是最佳选择。
2025-12-08 10:34:17
660
原创 JavaScript 对象引用与内存
JavaScript中对象通过引用传递,变量存储的是引用而非对象本身多个变量可以引用同一个对象,修改其中一个会影响所有引用设置变量为null仅断开该变量的引用,不影响其他引用垃圾回收基于可达性,而非引用计数。
2025-12-05 09:43:04
1017
原创 JavaScript 深度拷贝实现与对象的循环引用判断
推荐使用第一种或第二种方法,它们相对简单且有效。如果需要更详细的信息(如循环路径),可以使用第四种方法。方法,当出现循环引用的情况下回报错,以下是判断循环引用的方法。在JavaScript深度copy对象很多使用。根据具体需求选择合适的深度拷贝实现方案。
2025-12-04 11:08:56
237
原创 Elasticsearch 检索原理分析
层级核心技术目的存储层Lucene倒排索引、FST、FOR压缩、段合并高效存储和压缩数据,提供检索基础索引层分析器、Refresh、Flush、Translog实现近实时写入、数据持久化与可靠性检索层跳表集合运算、BM25评分、过滤器快速定位匹配文档并计算相关性分布式层分片、路由、两阶段查询(查询/取回)实现数据的水平扩展、高可用与并行计算简单来说,ES的检索就像一场高效的协同工作:Lucene提供了强大的单机搜索引擎库(倒排索引、评分)。ES在之上构建了分布式框架。
2025-12-04 10:12:23
925
原创 JavaScript 原型链详解
原型链的核心要点:继承机制:通过__proto__链接实现属性和方法的继承查找顺序:从自身开始,沿原型链向上查找共享特性:原型上的属性和方法被所有实例共享动态性:修改原型会影响所有已存在的实例使用创建具有指定原型的对象优先使用ES6的class语法避免修改内置对象的原型对于复杂继承,考虑组合模式代替原型继承使用而不是__proto__理解原型链是掌握JavaScript面向对象编程的关键,它解释了JavaScript中"一切皆对象"的本质。
2025-12-03 13:40:25
388
原创 JavaScript 中的作用域链的概念与作用
作用域链是一个由多个执行上下文的变量对象组成的链式结构,用于变量查找。let globalVar = "全局变量";let outerVar = "外部变量";let innerVar = "内部变量";// 这里可以访问:// ✓ 自己的变量// ✓ 父函数的变量// ✓ 全局变量inner();outer();特性作用域链原型链目的查找变量/函数声明查找对象的属性和方法构成变量对象(VO)链对象(proto)链查找规则就近原则,逐级向上先在自身查找,再沿原型链查找终点。
2025-12-03 13:21:35
402
原创 TypeScript交叉类型用法详解
组合多个独立类型,创建复合类型扩展现有类型,添加新属性创建灵活的函数签名,支持多种调用方式构建复杂类型系统,保持类型安全正确使用交叉类型可以大幅提高代码的类型安全性和可维护性,但需要注意避免过度复杂化和类型冲突。
2025-12-02 13:59:12
307
原创 TypeScript内置工具类Pick Omit Partial Required Readonly Exclude
顾名思义,可以采集 已定义对象中 自己需要的一部分形成新的定义类型。
2025-12-01 13:49:23
151
原创 怎么理解ES6中 Generator
Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同常见解决异步的手法那么,上文我们提到promsie已经是一种比较流行的解决异步方案,那么为什么还出现Generator?甚至async/await呢?
2025-12-01 09:44:52
305
原创 你是怎么理解ES6中 Promise的
Promise对象有三个状态pending进行中fulfilled成功rejected失败Promise 状态一旦改变,就不会再变,只会从pending状态变成fulfilled与rejected。
2025-11-27 13:49:02
673
原创 ResizeObserver与IntersectionObserver
【代码】ResizeObserver与IntersectionObserver。
2023-05-12 17:26:32
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1