<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_45304848的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_45304848</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_45304848]]></copyright><item><title><![CDATA[ES6模板字符串深度解析：原理、应用与Tagged Template高级用法]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155984681</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155984681</guid><author>qq_45304848</author><pubDate>Tue, 16 Dec 2025 16:29:54 +0800</pubDate><description><![CDATA[ES6模板字符串与标签模板解析 本文深入探讨了ES6模板字符串及其高级特性Tagged Template。模板字符串通过反引号语法解决了传统字符串拼接的痛点，支持多行文本、变量插值和复杂表达式。其底层原理涉及字符串字面量数组和表达式数组的拆分与拼接。Tagged Template作为高级特性，允许自定义字符串处理逻辑，接收字符串字面量和表达式值两个参数，可应用于XSS防护、国际化、CSS-in-JS等场景。文章详细解析了模板字符串的语法优势、底层机制以及标签模板的高级应用，展示了其强大的字符串处理能力。]]></description><category></category></item><item><title><![CDATA[JavaScript中var、let和const的深度解析与最佳实践]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155861623</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155861623</guid><author>qq_45304848</author><pubDate>Fri, 12 Dec 2025 18:37:23 +0800</pubDate><description><![CDATA[摘要：本文深入解析JavaScript中var、let和const三种变量声明方式的区别。var存在函数作用域、变量提升和重复声明问题，而let/const引入块级作用域、无变量提升和不可重复声明等特性。通过经典for循环示例，展示了let如何解决var的作用域问题。文章建议优先使用const，合理使用let，避免使用var，以提高代码安全性和可维护性。最后对比了三者的核心差异并给出最佳实践建议。]]></description><category></category></item><item><title><![CDATA[React自定义Hook实战与最佳实践]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155786962</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155786962</guid><author>qq_45304848</author><pubDate>Wed, 10 Dec 2025 17:49:29 +0800</pubDate><description><![CDATA[React自定义Hook深度解析：从实现到最佳实践 本文深入探讨React自定义Hook的实现原理和应用场景。自定义Hook是以&quot;use&quot;开头的函数，能够封装和复用组件逻辑，提升代码可维护性。文章详细介绍了useDebounce和useThrottle两个常用Hook的实现，包括useRef存储定时器、useCallback缓存函数等关键技术点。同时提供了类型定义优化和副作用清理等进阶技巧，帮助开发者编写更健壮的Hook。最后总结了自定义Hook在性能优化、状态管理和UI交互等场景的应用]]></description><category></category></item><item><title><![CDATA[图片懒加载实战：两种高效方案对比]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155712622</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155712622</guid><author>qq_45304848</author><pubDate>Mon, 08 Dec 2025 17:46:25 +0800</pubDate><description><![CDATA[图片懒加载技术对比：滚动监听与IntersectionObserver两种实现方式 摘要： 本文详细介绍了图片懒加载技术，对比了滚动监听和IntersectionObserver两种实现方案。滚动监听通过监听scroll事件和计算元素位置实现，兼容性好但性能较低；IntersectionObserver利用浏览器原生API自动检测元素可见性，性能更优但仅支持现代浏览器。文章提供了两种方案的核心代码实现，并针对滚动监听方案给出了节流优化等性能建议。通过懒加载技术可显著提升网页性能，减少初始加载时间，优化用户体]]></description><category></category></item><item><title><![CDATA[手写Promise核心方法实现详解]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155609924</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155609924</guid><author>qq_45304848</author><pubDate>Fri, 05 Dec 2025 15:36:12 +0800</pubDate><description><![CDATA[本文详细介绍了如何手写实现Promise的核心方法，包括catch、resolve、reject、all、allSettled、race和any等方法。通过完整的代码示例展示了Promise的状态管理、链式调用、异步处理等核心机制。每个方法都包含实现代码和验证用例，确保符合PromiseA+规范。特别强调了then方法的微任务处理、状态不可逆性以及错误处理机制。完整代码实现了一个符合规范的MyPromise类，可作为理解Promise原理的参考实现。]]></description><category></category></item><item><title><![CDATA[PromiseA+规范核心解析与实现]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155575547</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155575547</guid><author>qq_45304848</author><pubDate>Thu, 04 Dec 2025 17:26:39 +0800</pubDate><description><![CDATA[PromiseA+规范核心要求包括：初始状态为pending，resolve/reject后状态不可逆变化，必须提供then方法处理异步结果，支持链式调用和错误捕获。手写实现要点：定义三种状态常量，通过构造函数初始化状态和值，实现resolve/reject方法保证状态变更的不可逆性，then方法处理回调并返回新Promise支持链式调用。测试用例验证了异步操作、链式调用、错误处理等核心功能，结果与官方Promise一致。实现过程中需注意微任务调度和循环引用检测。]]></description><category></category></item><item><title><![CDATA[React Fiber机制解析：任务可控性揭秘]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155524189</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155524189</guid><author>qq_45304848</author><pubDate>Wed, 03 Dec 2025 15:04:05 +0800</pubDate><description><![CDATA[React Fiber机制通过任务拆分和优先级调度实现更新过程的可控性。它将VDOM遍历拆分为小任务单元，利用workInProgressTree和currentFiberTree双缓冲机制进行差异比较和副作用收集。通过Scheduler模块实现任务挂起、恢复和终止，当帧时间不足时挂起任务，空闲时恢复执行，遇到高优先级任务则终止当前流程。每个FiberNode包含任务优先级标识(expirationTime)，确保重要任务优先执行。最终形成副作用链表，在不可中断的Commit阶段批量更新DOM，既保证性能又]]></description><category></category></item><item><title><![CDATA[HTTP2.0为何比HTTP1.1更快？]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155454260</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155454260</guid><author>qq_45304848</author><pubDate>Tue, 02 Dec 2025 17:00:00 +0800</pubDate><description><![CDATA[HTTP2.0相比HTTP1.1的主要改进包括：采用二进制协议，将数据分割为帧实现多路复用；引入数据流概念，通过唯一编号区分不同请求；实现头部信息压缩，减少重复字段传输；支持服务器主动推送静态资源。其核心优势在于通过帧结构设计解决了HTTP1.1的队头阻塞问题，使多个请求/响应可以并行传输，大幅提升通信效率。这种二进制帧结构使数据传输更可控，避免了HTTP1.1基于文本解析的不确定性，为现代Web应用提供了更高效的底层协议支持。]]></description><category></category></item><item><title><![CDATA[手写深入解析call、apply、bind原理]]></title><link>https://blog.youkuaiyun.com/qq_45304848/article/details/155446376</link><guid>https://blog.youkuaiyun.com/qq_45304848/article/details/155446376</guid><author>qq_45304848</author><pubDate>Mon, 01 Dec 2025 14:35:33 +0800</pubDate><description><![CDATA[本文详细解析了JavaScript中call、apply和bind方法的实现原理及自定义实现方案。call和apply通过将函数临时挂载到目标对象上执行来实现this绑定，区别在于参数传递方式不同。bind方法则更为复杂，需要考虑构造函数调用情况，通过桥接函数解决原型继承和判断new调用问题。文中提供了完整的自定义实现代码，并包含验证示例，展示了三种方法如何正确绑定this上下文和传递参数。这些实现方案完整模拟了原生方法的行为，包括处理预设参数、支持构造函数模式等功能。]]></description><category></category></item></channel></rss>