自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 HTTP的血泪进化史

HTTP 的进化史,就是一部不断将“队头阻塞”从应用层推向传输层,最终在传输层彻底解决的历史。版本队头阻塞位置核心解决手段遗留的“世纪难题HTTP/1.1应用层持久连接、管道化(失败)响应必须按序返回,导致慢请求阻塞所有请求。HTTP/2传输层二进制分帧、多路复用基于 TCP,一个数据包丢失,阻塞整个连接上的所有流。HTTP/3无基于 UDP 的 QUIC 协议QUIC 流独立多路复用,一个流的丢失不影响其他流。彻底解决!

2025-11-22 22:59:02 833 2

原创 MCP从零开始

MCP(ModelContextProtocol)是一个为大型语言模型(LLM)提供外部工具和数据访问的开放标准协议。它通过JSON-RPC 2.0规范实现标准化通信,使用stdio或HTTP作为传输方式,使LLM能够执行代码、处理文件、访问实时数据等操作。MCP包含初始化、工具发现和工具调用三个核心流程,通过SDK简化开发。该协议突破了LLM的固有局限,使其从封闭系统转变为可扩展的智能服务。技术实现上演示了基于Node.js的MCP服务开发,包括工具注册、方法调用和错误处理等关键环节,最终展示了与AI应用

2025-11-22 16:02:09 1184

原创 BFC—块级格式化上下文

BFC(块级格式化上下文)是CSS中解决布局问题的关键机制,它创建独立渲染区域隔离内外元素的影响。BFC能解决高度塌陷、外边距合并和浮动元素重叠三大经典问题。触发方式包括设置浮动、定位、溢出属性或特定display值,推荐使用副作用最小的display:flow-root。BFC的应用哲学体现了"边界带来自由"的东方智慧,暗示人生也需要建立清晰界限来实现内在秩序。这种技术概念与精神修养的类比,揭示了在数字与现实中构建自洽系统的重要性。

2025-11-09 20:48:40 914

原创 彻底打通任督二脉:JavaScript 执行上下文、作用域与 this 指向的底层机制深度剖析

本文深度剖析了JavaScript中执行上下文、作用域与this指向的底层机制。执行上下文(EC)是代码执行时的核心对象,包含词法环境、变量环境和ThisBinding三个组件。词法环境实现静态作用域规则,通过[[Environment]]属性形成作用域链。变量环境处理var变量提升,而this绑定根据调用方式动态确定。文章通过对象结构模拟和图示,展现了全局函数调用时这些机制的运作过程,最终通过代码示例追踪变量查找和this指向的实际变化,帮助开发者彻底理解JavaScript的底层执行原理。

2025-11-05 20:33:34 887

原创 TCP三握四挥&TLS握手

摘要:本文深入解析TCP与TLS协议的握手机制。TCP通过三次握手建立可靠连接(同步序列号,验证收发能力),四次挥手优雅关闭(支持半关闭特性)。TLS1.2需四次往返完成身份验证和密钥协商,而TLS1.3优化为一次往返,强制前向保密并移除不安全特性。这些协议设计体现了网络通信在可靠性、安全性和效率之间的精妙平衡,其严谨的交互逻辑蕴含着超越技术层面的生活智慧,展现了在数字时代建立信任的仪式感与边界意识。

2025-11-05 14:27:41 1021

原创 从零实现React Scheduler调度器

本文介绍了React团队开发的Scheduler任务调度器,通过生动类比(如"厕所排队")解释其核心原理。Scheduler采用五级优先级系统(ImmediatePriority到IdlePriority),使用最小堆管理任务队列,实现时间切片(默认5ms)调度机制。核心功能包括:优先级任务调度、任务中断/恢复、主线程让出等。文章从零实现调度器,包含14个模块:优先级定义、最小堆、时间工具、状态管理、工作循环等,完整还原了React Scheduler的核心逻辑。该调度器能有效解决前端应

2025-10-31 22:13:34 991

原创 JS 原型与继承——看完不会你报警

这篇文章用生动直白的语言解析了JavaScript原型链的核心概念。作者首先明确区分了__proto__(对象的原型指针)、prototype(构造函数原型对象)和原型链的本质,然后详细讲解了new操作符的四步执行过程,并手动实现了一个模拟new的函数。文章重点分析了五种继承方式的优缺点,特别推荐了"寄生组合继承"和ES6的extends语法。最后通过几道典型题目验证理解,承诺"如果看完还不懂就报警"。全文用幽默风格将复杂的原型概念具象化,既系统全面又通俗易懂。

2025-10-20 21:28:48 854

原创 Promise

本文详细解析了JavaScript Promise的实现原理,通过8个步骤从零构建了一个基础Promise类。核心内容包括:Promise的三种状态(pending/fulfilled/rejected)管理、回调存储机制、then方法的链式调用实现,以及处理各种返回值类型的核心逻辑。重点分析了then方法如何通过返回新Promise实现链式调用,以及如何处理普通值、Promise对象和thenable对象。文章通过代码示例展示了Promise从同步到异步场景的处理方式,揭示了Promise将复杂异步逻辑转

2025-10-17 23:03:14 864

原创 JS 的V8引擎原理

现代JavaScript引擎采用即时编译(JIT)技术,结合了解释执行与编译优化的优势。以V8引擎为例,其工作流程包括:解析JS代码生成AST,解释器将其转换为字节码 mechanized 执行,同时收集热点代码;优化编译器将热点代码编译为高效机器码;若假设不成立则进行反优化。内存管理采用分代策略,新生代使用Scavenge算法快速回收,老生代采用标记-清除/整理算法,并通过增量标记和三色标记enst减少停顿时间。这种架构使JS兼具快速启动和高执行效率,支持复杂应用场景ieważ。

2025-10-11 15:50:51 945

原创 浏览器渲染原理

摘要:浏览器渲染流程分为八个阶段:HTML解析、样式计算、布局、分层、绘制、分块、光栅化和画。其中CSS不会阻塞HTML解析,而JS会阻塞解析。主线程依次完成DOM树构建、样式计算、布局和分层,然后生成绘制指令。合成线程负责后续分块、光栅化工作,最终由GPU完成屏幕成像。整个过程采用流水线作业模式,各阶段紧密衔接,特别优化了transform等操作效率。(150字)

2025-10-09 21:58:52 581

原创 基于XLSX库封装的excel表导入导出工具函数

(1)(2)在src/utils下,创建ExportExcelAsJson.js文件 和 ExportExcelFile.js。

2025-06-02 19:36:34 573

原创 this指向问题,看这一篇就够了!

的时候,他就自动捕获其。

2025-06-01 21:45:51 1845

原创 什么是JS垃圾回收机制?

JS 的垃圾回收就像妈妈(GC)帮你打扫房间,但如果你乱扔垃圾(内存泄漏),再牛的清洁工也救不了你!,也就是 JS 引擎如何自动清理那些不再使用的内存,防止你的网页变成“内存泄漏”的重灾区。JavaScript 的垃圾回收(GC)是自动内存管理机制,主要采用。每个对象身上挂个小本本(计数器),记录有多少变量引用它。(GC),帮你默默打扫内存,防止你的代码变成“垃圾堆”。垃圾,但 JS 很贴心(或者说很懒),它自带。想象一下,你是个富二代程序员,每天都在疯狂。,如果不清理,内存迟早爆炸!

2025-05-28 22:32:49 1956

原创 什么是Cookie、localStorage、sessionStorage,应用场景?

sessionStorage 就像你去超市带的购物袋,结账前东西都在,回家(关标签页)就清空了。:localStorage 就像你家冰箱,东西能放很久,但得自己记得清理过期食品。:Cookie 就像你裤兜里的小纸条,方便但容易丢,还占口袋空间。(毕竟1994年就存在了,爷爷级技术🤣)。(每次请求都带,尤其是存多了的时候)。(比Cookie安全,关页就消失)。(如用户主题设置、离线数据)。(缓存API响应减少请求)。(比如购物车商品ID)。(独立背包,各背各的)。(防止页面刷新丢失)。

2025-05-26 22:51:43 510

原创 HTTP缓存:从“失忆症”到“过目不忘”的进化史

相信看完这篇有趣的博客,你应该对http缓存有了更深刻的认识😁 End!HTTP/1.1 推出了 Cache-Control。终于,HTTP/1.0 引入了 Expires。早期的互联网就像个健忘的打工人——,但缓存时间还没到,怎么办?,哪怕内容一模一样。

2025-05-26 22:23:43 871

原创 事件循环、宏任务微任务看这一篇就够了!

​ 同步代码放入执行栈中,异步代码等待时机成熟由宿主环境将其放入任务队列排队。**当执行栈里的任务执行完毕后,它会去任务队列看是否有异步任务,有就送到执行栈执行,反复循环查看执行,**这个过程是事件循环(eventloop)​ JS是单线程,防止代码阻塞,我们把代码(任务)分为:同步任务和异步任务,同步代码给js引擎执行,异步代码交给宿主环境(调度)​ 当执行栈任务执行完后,将会监听任务对列,此时,如果有微任务,就先将微任务压入执行栈先执行,当微任务执行完后才执行宏任务。,微任务优先于宏任务!

2025-05-26 21:42:51 2242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除