<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>JavaScript on Commentary of Takao</title><link>https://takao.blog/zh/categories/javascript/</link><description>Recent content in JavaScript on Commentary of Takao</description><generator>Hugo -- gohugo.io</generator><language>zh</language><copyright>Commentary of Takao</copyright><lastBuildDate>Wed, 15 Jul 2026 22:01:08 +0900</lastBuildDate><atom:link href="https://takao.blog/zh/categories/javascript/index.xml" rel="self" type="application/rss+xml"/><item><title>替换 LocalStorage：动态 IndexedDB 包装器 localForage</title><link>https://takao.blog/zh/web/js-indexeddb-localforage-localstorage/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-indexeddb-localforage-localstorage/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-indexeddb-localforage-localstorage-zh.png" alt="Featured image of post 替换 LocalStorage：动态 IndexedDB 包装器 localForage" /&gt;&lt;h2 id="介绍"&gt;介绍
&lt;/h2&gt;&lt;p&gt;客户端存储是现代 Web 应用程序的基本要求 - 离线缓存、用户首选项、草稿数据和会话状态都需要保留在浏览器中。多年来，&lt;strong&gt;localStorage&lt;/strong&gt; 一直是最简单的首选解决方案，但随着应用程序的增长，它的局限性变得令人痛苦。本文对 localStorage、原始 IndexedDB 和 &lt;strong&gt;localForage&lt;/strong&gt; 包装器库进行了比较，为选择正确的存储引擎提供了实用指导。&lt;/p&gt;</description></item><item><title>使用 v 标志解锁 JavaScript RegExp 功能</title><link>https://takao.blog/zh/web/js-regex-v-flag/</link><pubDate>Wed, 15 Oct 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-regex-v-flag/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-regex-v-flag-zh.png" alt="Featured image of post 使用 v 标志解锁 JavaScript RegExp 功能" /&gt;&lt;h2 id="介绍"&gt;介绍
&lt;/h2&gt;&lt;p&gt;JavaScript 中的正则表达式已经有了显着的发展。 ES2024 引入了 &lt;strong&gt;&lt;code&gt;v&lt;/code&gt; 标志&lt;/strong&gt; — &lt;code&gt;u&lt;/code&gt; 标志的超集，可解锁强大的集合表示法、字符类减法、交集和正确的 Unicode 表情符号匹配。如果您一直在努力应对复杂的字符类逻辑或表情符号正则表达式模式，那么 &lt;code&gt;v&lt;/code&gt; 标志将改变游戏规则。&lt;/p&gt;</description></item><item><title>ECMAScript 2025 (ES16) 中令人兴奋的功能</title><link>https://takao.blog/zh/web/js-es2025-new-features/</link><pubDate>Thu, 15 May 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-es2025-new-features/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-es2025-new-features-zh.png" alt="Featured image of post ECMAScript 2025 (ES16) 中令人兴奋的功能" /&gt;&lt;h2 id="介绍"&gt;介绍
&lt;/h2&gt;&lt;p&gt;每年，TC39 委员会都会更新 ECMAScript 规范，为 JavaScript 生态系统引入新的语言功能和 API。&lt;/p&gt;
&lt;p&gt;对于即将推出的 &lt;strong&gt;ECMAScript 2025 (ES16)&lt;/strong&gt; 标准，一些提案已达到第 3 阶段或第 4 阶段，表明它们正处于浏览器实施和采用的最后阶段。&lt;/p&gt;</description></item><item><title>JavaScript 异步/等待应避免的模式</title><link>https://takao.blog/zh/web/javascript-async-await-tips/</link><pubDate>Sat, 15 Feb 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/javascript-async-await-tips/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/javascript-async-await-tips-zh.png" alt="Featured image of post JavaScript 异步/等待应避免的模式" /&gt;&lt;h2 id="介绍"&gt;介绍
&lt;/h2&gt;&lt;p&gt;自从 ES2017 中引入 &lt;code&gt;async/await&lt;/code&gt; 以来，编写异步 JavaScript 变得更加直观。它允许开发人员以看起来同步的结构表达异步逻辑，与嵌套的 Promise 链 (&lt;code&gt;.then().catch()&lt;/code&gt;) 相比，大大提高了代码库的可读性。&lt;/p&gt;
&lt;p&gt;然而，这种干净的类似同步的语法可以隐藏性能缺陷和错误处理错误。在本文中，我们将深入研究常见的异步/等待反模式，并学习如何将它们重构为高性能、有弹性的代码。&lt;/p&gt;</description></item><item><title>JavaScript 数组方法：从基础知识到高级模式</title><link>https://takao.blog/zh/web/js-array-methods/</link><pubDate>Thu, 12 Dec 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-array-methods/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-array-methods-zh.png" alt="Featured image of post JavaScript 数组方法：从基础知识到高级模式" /&gt;&lt;p&gt;JavaScript 数组是现代 Web 开发中数据操作的支柱。随着 ES2023 规范引入了长期变异方法的不可变替代方案，现在是重新审视我们如何使用数组的最佳时机。本文涵盖了数组方法的全部内容，从熟悉的 &lt;code&gt;map&lt;/code&gt;、&lt;code&gt;filter&lt;/code&gt; 和 &lt;code&gt;reduce&lt;/code&gt; 到前沿的添加，并提供了实际示例和性能见解。&lt;/p&gt;</description></item><item><title>JavaScript 类型数组：浏览器中的二进制数据处理</title><link>https://takao.blog/zh/web/js-typed-arrays/</link><pubDate>Tue, 10 Sep 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-typed-arrays/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-typed-arrays-zh.png" alt="Featured image of post JavaScript 类型数组：浏览器中的二进制数据处理" /&gt;&lt;p&gt;JavaScript 的原生 &lt;code&gt;Number&lt;/code&gt; 类型（IEEE 754 双精度浮点数）对于二进制数据来说效率低下。早期的解决方案涉及在普通数组中手动​​打包字节，这种方法速度慢且容易出错。 ECMAScript 2015 正式化了类型数组，为 JavaScript 带来了类似 C 的内存管理。这种三层架构 — &lt;code&gt;ArrayBuffer&lt;/code&gt;、TypedArray 视图和 &lt;code&gt;DataView&lt;/code&gt; — 支持在浏览器和 Node.js 中进行高性能二进制数据处理。&lt;/p&gt;</description></item><item><title>JavaScript 代理和 Reflect API：元编程模式</title><link>https://takao.blog/zh/web/js-proxy-reflect/</link><pubDate>Tue, 04 Jun 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-proxy-reflect/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-proxy-reflect-zh.png" alt="Featured image of post JavaScript 代理和 Reflect API：元编程模式" /&gt;&lt;p&gt;JavaScript 的 &lt;code&gt;Proxy&lt;/code&gt; 和 &lt;code&gt;Reflect&lt;/code&gt; API 是该语言中最强大的元编程工具之一。它们允许开发人员拦截和自定义对象的基本操作——属性访问、赋值、枚举、函数调用，甚至构造函数调用。本文探讨了所有 13 个代理陷阱、互补的 &lt;code&gt;Reflect&lt;/code&gt; API 以及 Vue 3、MobX 和 Immer 等生产框架中使用的真实模式。&lt;/p&gt;</description></item><item><title>ES2024 新功能：JavaScript 的新功能</title><link>https://takao.blog/zh/web/es2024-new-features/</link><pubDate>Tue, 12 Mar 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/es2024-new-features/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/es2024-new-features-zh.png" alt="Featured image of post ES2024 新功能：JavaScript 的新功能" /&gt;&lt;p&gt;ECMAScript 2024 (ES15) 为 JavaScript 引入了几个期待已久的功能。本文通过实际示例和采用时间表指南介绍了新功能。&lt;/p&gt;
&lt;h2 id="数组分组objectgroupby-和-mapgroupby"&gt;数组分组：Object.groupBy 和 Map.groupBy
&lt;/h2&gt;&lt;p&gt;最受欢迎的 JavaScript 功能之一终于到来了。 &lt;code&gt;Object.groupBy&lt;/code&gt; 和 &lt;code&gt;Map.groupBy&lt;/code&gt; 根据回调将数组元素划分为组：&lt;/p&gt;</description></item><item><title>JavaScript 事件循环深入探讨：微任务、宏任务及其他</title><link>https://takao.blog/zh/web/js-event-loop/</link><pubDate>Mon, 19 Feb 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-event-loop/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-event-loop-zh.png" alt="Featured image of post JavaScript 事件循环深入探讨：微任务、宏任务及其他" /&gt;&lt;p&gt;JavaScript 事件循环是该语言中最重要但又被误解的概念之一。尽管 JavaScript 是单线程的，但它的事件循环通过复杂的队列系统实现了非阻塞并发。本文构建了 JavaScript 如何处理异步执行的完整心智模型，从调用堆栈到微任务队列以及其间的所有内容。&lt;/p&gt;</description></item><item><title>高级 JavaScript Promise 模式：掌握异步控制流</title><link>https://takao.blog/zh/web/js-promise-patterns/</link><pubDate>Tue, 05 Dec 2023 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/js-promise-patterns/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/js-promise-patterns-zh.png" alt="Featured image of post 高级 JavaScript Promise 模式：掌握异步控制流" /&gt;&lt;p&gt;Promise 是现代 JavaScript 的基础，但掌握异步控制流需要超越基本的 &lt;code&gt;.then()&lt;/code&gt; 链。本文探讨了中高级开发人员生产应用程序所需的高级 Promise 模式，从并发控制到错误处理和取消。&lt;/p&gt;
&lt;h2 id="超越基础的承诺景观"&gt;超越基础的承诺景观
&lt;/h2&gt;&lt;p&gt;JavaScript 在 Promise 上提供了四种静态方法来组合异步操作，每种方法适合不同的场景：&lt;/p&gt;</description></item></channel></rss>