往期文章:
【前端趋势调查系列】带你看看前端生态圈的技术趋势state-of-js 2021 & state-of-css 2021详细解读
【前端趋势调查系列】带你看看前端生态圈的技术趋势state-of-css 2022 & state-of-js 2022详细解读
【前端趋势调查系列】带你看看前端生态圈的技术趋势state-of-css 2023详细解读
【前端趋势调查系列】带你看看前端生态圈的技术趋势state-of-js 2023详细解读
【前端趋势调查系列】带你看看前端生态圈的技术趋势state-of-css 2024和state-of-js 2024详细解读
一、写在前面
- 本次分享的数据来源是state-of-js,是由Devgraphics开源社区团队发起的前端生态圈中规模最大的数据调查。
- 想要贡献state-of-js调查结果中文翻译的同学可以联系我,或者直接向Devographics/locale-zh-Hans这个仓库提PR,然后艾特我来帮你review。
- 如果这篇文章有其他意见或更好的建议,欢迎各位同学们多多指教。
二、受访者统计
今年的state-of-js调查共回收了13002份问卷结果。和去年相问卷结果又少了一些。
其实自从2022年起,填写问卷的人就越来越少,原因无外乎这么几个:
- 前端的整体热度都在走低,像是google trends上前端相关的搜索词的热度都在下降;
- 问卷内容过长导致内容填写起来比较麻烦;
- 受访者虽然一直关注这项调查,但填了第一年的问卷之后第二年的问卷就不填了等等。
而在今年我结合我在Datawhale做的一些数据调查来看,有一个更重要的原因,就是AI的崛起——大部分开发者们的注意力已经转向了AI领域(包括我自己也是),基本不会在前端领域投入过多关注了。
之前我也和调查发起人@SachaG聊过state-of-js调查的未来,作为一项坚持了9年的前端数据调查,也算是见证了前端领域的崛起与衰落。而如今,前端领域的热度早已不再是当年的样子,这项调查也不知道还能做多少年,大家且看且珍惜吧。
三、JS特性
语法特性
从今年的语法特性使用情况来看,社区对提升代码健壮性和简洁性的新特性抱有极大的热情:
- 空值合并 运算符 (
??) 的使用率高达 87% ,已经成为事实上的标准,这说明开发者在处理null或undefined时,迫切需要一种比||更严谨、更明确的工具来避免将0或false等有效值意外覆盖,在日常开发中,我们应当优先使用??来处理默认值赋值,以增强代码的稳定性和可预测性。 - 动态导入(
Dynamic Import) 以 66% 的使用率紧随其后,反映出代码分割和按需加载已是现代 Web 应用性能优化的核心实践,在构建大型应用、特别是需要考虑首屏加载速度的场景时,动态导入几乎是必修课。 - 类私有字段(
Private Fields) 和 逻辑赋值 运算符 (Logical Assignment) 的使用率分别为 43% 和 35% ,表明封装和代码简写同样是开发者追求的目标,尤其是私有字段,为在团队协作中保护内部状态、减少意外修改提供了语言层面的保障。
Array、Set、Object的特性
今年对 Array、Set、Object 数据结构的新特性调查,揭示了不可变性(Immutability) 和 数据处理便利性 已成为前端开发的核心趋势:
- 返回新数组的
toSorted()使用率已达 47% ,其孪生兄弟toReversed()也达到 37% ,说明社区正主动避免原地修改数组带来的副作用。 Set新方法整体普及度不高,但在使用者中union()、intersection()、difference()等集合运算需求最集中,开始用于表达更复杂的数据关系与权限逻辑。- 首次进入调查的
Object.groupBy()拿到 39% 使用率,说明了“按字段分组”这类高频需求可以摆脱 Lodash 等库,直接靠原生 JS 优雅解决。
Promise的特性
在异步编程领域,对多个 Promise 的精细化控制能力已成为现代前端的标配:
Promise.allSettled()以 52% 的使用率登顶,适合在“批量请求但不希望单点失败拖垮整体流程”的场景下使用,例如并行拉取多个非关键数据源、日志或埋点结果,它能保证我们总能拿到每个 Promise 的最终状态。Promise.any()使用率也达到 47% ,是“抢最快一个结果”的利器,典型场景是对多个镜像服务发起并行请求、谁先返回就用谁,从而显著优化响应延迟。- 这两个 API 的走红说明前端异步模型已经从“能并发”走向“可编排”,开发者不再满足于简单的
Promise.all,而是开始为不同业务场景选择更合适的并发策略。
浏览器API
浏览器 API 的使用情况反映了 Web 应用能力正从传统的页面展示,向功能更丰富、更接近原生应用的形态演进:
WebSocket仍以 64% 的使用率牢牢占据基础设施地位,支撑了社交、协作、监控看板等场景中的实时通信。- PWA 使用率达到 48% ,说明离线能力、安装体验和通知能力已经被越来越多团队纳入评估维度。
- 更值得关注的是
WebAssembly (WASM),使用率已达 21% 且排名上升 2 位,高性能语言(如 C++、Rust)编译到浏览器侧解决音视频处理、加解密、游戏等计算密集型问题,正在从先锋实践迈向工程常规武器。
JS语言的痛点
关于 JS 语言自身的痛点,今年的结果再次印证了社区共识:
- 缺乏静态类型(Static Typing) 以 28% 的提及率高居第一,这直接解释了为何 TypeScript 能在短时间内成为事实标准——大型项目在可维护性、重构安全和错误提前暴露上的诉求远非动态类型所能满足。
- 日期处理(Dates) 以 10% 排名第二,说明即便有
Temporal提案在推进,现实中开发者仍大量依赖date-fns、Day.js等第三方库来填补标准库短板。 - 同时,ESM 与 CJS 的兼容问题、标准库整体匮乏 等历史包袱也依然是工程实践中的绊脚石,这些痛点共同构成了“JS 好用但不够省心”的真实写照。
浏览器的痛点
当我们把视线从语言本身转向其运行环境——浏览器时,痛点显得更具工程现实感:
- 跨浏览器支持(Browser support) 以 31% 的提及率稳居首位,说明即便现代浏览器在标准实现上趋于一致,边缘行为差异、新特性落地节奏和兼容性策略仍是困扰前端团队的主要问题。
- 浏览器测试(Browser testing) 以 13% 位列第二,本质上是跨浏览器差异在测试和回归成本上的放大反馈
- 而被单独点名的 Safari 以 7% 成为第三大痛点,很多团队已经默认把它视作“新时代的 IE”,其标准跟进节奏和独特限制,为跨端一致性和平滑体验带来了额外负担。
四、JS技术
综述
这两张图分别从“历史趋势”和“当前满意度”两个维度,为我们描绘了 JS 技术生态的全景图:
- 左侧四象限清晰展示出以 Vite 为代表的新一代工具,正沿着“低使用、高满意度”向“高使用、高满意度”高速跃迁,而曾经的王者 webpack 虽然仍有庞大使用量,但满意度明显滑落且轨迹线转为紫色,显示出疲态
- 从右侧满意度分级我们可以发现,Vite (98%) 、Vitest (97%) 、Playwright (94%) 、Astro (94%) 等新星占据 S 级,而 webpack (26%) 、Angular (48%) 、Next.js (55%) 等传统选手则跌入 B/C 级,这意味着“存量巨大但口碑一般”的技术栈随时可能迎来用户流失;同时,Vite 生态中 Vite + Vitest 的双双登顶也说明高度协同的一体化工具链的优势,对于开发者而言,技术选型时不能只看当前占有率,更要关注满意度和趋势曲线,尤其要多留意那些位于右下象限、线条仍在上扬的新工具。
前端框架
前端框架的长期“三巨头”格局正在被悄然改写:
- React 依旧以 80%+ 的使用率牢牢占据生态核心,但满意度已滑落到 B 级(72%),复杂的心智模型和渐进式演化成本让不少团队收到困扰。
- Vue.js 在 2022 年前后正式超越 Angular 成为第二大框架,并以 84% 的满意度稳居 A 级,证明其在开发体验与性能之间找到了不错的平衡点。
- Svelte 则凭借“无虚拟 DOM”的编译时理念持续走高,使用率已升至 26% ,成为追求极致性能和简洁语法团队的心头好。
- 更有意思的是 HTMX,在近两年实现爆发式增长、使用率来到 13% ,它用“回归 HTML、用属性驱动交互”的思路,对当下 JS-heavy 的前端栈提出了有力反思。
元框架(前后端一体化框架)
元框架领域呈现出“一家独大 + 新星涌现”的混合格局:
- Next.js 继续凭借与 React 的深度绑定,以近 60% 的使用率统治榜单,是大多数 React 团队构建生产级应用的默认选项,App Router 等激进改动和整体复杂度的提升正在透支开发者耐心。
- Nuxt 在 Vue 生态中稳扎稳打,使用率升至 28% 。
- Astro 与 SvelteKit 则是近年最值得关注的两颗新星,前者在内容密集型站点中大放异彩,后者与 Svelte 深度绑定,为全栈应用提供了端到端的极致体验。
后端框架
在 Node.js 后端框架领域,我们不难看出,还是有些新面孔:
- 老牌选手 Express 仍以 80%+ 的使用率稳居第一,作为“薄核心 + 丰富中间件”的事实标准难以被完全替代,但 81% 的满意度也表明开发者正在寻找更现代的方案
- tRPC 是过去两年最耀眼的新星,通过直接在 TypeScript 中实现端到端类型安全调用,大幅简化了前后端联调与接口演进的成本。
测试框架
JavaScript 测试生态正在经历一场“现代化重构”:
- 在单元与集成测试层面,Jest 以 75% 的使用率独占鳌头。
- 端到端测试领域则被 Cypress (55%) 和 Playwright (49%) 两强主导,其中 Playwright 以 94% 的满意度跻身 S 级,体现了其在稳定性、调试体验和多浏览器支持上的优势。
- 紧随其后的是 Vitest,作为 Vite 生态的一员,在短短两年内使用率冲到 50% ,满意度更是高达 97% ,验证了“测试工具与构建工具深度一体化”带来的体验红利。
构建工具
前端构建工具领域也在发生变革:
- webpack 依旧以 85% 的使用率占据绝对存量,但满意度已经跌至 26% ,复杂配置和缓慢构建让它越来越像一座难以完全迁移的“基础设施债务”。
- Vite 则是新时代的领跑者,使用率在短短数年间拉升到 83% 、几乎追平 webpack,满意度更是高达 98% ,依托基于 Go 的 esbuild 实现极快冷启动和热更新,重新定义了“本地开发体验”的下限
- 在更底层 esbuild 的直接使用率已达 52% ,SWC 也拿到 83% 的满意度,说明社区正将编译热点下沉到 Rust/Go 等原生实现,再在其之上搭建更友好的工具。
五、其它工具
JS库使用情况
在通用 JS 库层面,数据清晰地表明开发者最在乎两件事:
- 类型安全和数据处理效率。以 TypeScript 为优先设计的校验库 Zod 以 48% 的使用率登顶,成为“运行时数据校验 + 类型推导”领域的绝对主角,反映出大家在 API 返回、表单输入等链路上,对类型与数据一致性的强烈诉求。
- 传统工具库 Lodash (39%) 依然宝刀不老,仍在大量项目中承担通用数据处理职责。
- 而在日期处理上,date-fns (39%) 、Moment (25%) 、Day.js (24%) 等多家共存,本质上是对 JS 原生日期能力长期缺位的弥补
- 即便是已经被视作“老古董”的 jQuery (16%) ,也仍凭借海量遗留项目保持着不可忽视的存在感。
AI使用情况
AI 工具已经深度嵌入前端开发者的日常工作流,成为新的基础设施:
- ChatGPT 以 60% 的使用率位居首位,承担了问答、代码草稿生成、调试思路辅助等“外脑”角色。
- 深度集成 IDE 的 GitHub Copilot 使用率也达 51% ,更偏向于在写代码时提供上下文感知补全与重构建议,两者形成“离线思考 + 在线自动补全”的互补关系
- 与此同时,Claude (44%) 、Google Gemini (28%) 等通用大模型产品也在快速补位,说明开发者愿意多源头对比体验
- 值得注意的是 AI-native 编辑器 Cursor 已有 26% 的使用率,一部分人开始直接迁移到“以 AI 为核心交互对象”的编辑环境中,这预示着未来开发工具形态本身也会被 AI 重塑。
- 另外,国产大模型 Deepseek 也榜上有名,占据了 8% 的使用率。
其它编程语言使用情况
这张图展示了 JS 开发者的多语言画像:
- Python 以 41% 的占比成为最常见的第二语言,依托后端开发、自动化脚本、数据分析与 AI 等丰富场景,为前端同学打开了更多技术边界。
- PHP (27%) 的存在感说明不少人仍在使用 Web 传统栈构建项目或是在维护古老的历史项目。
- 在工具链和 DevOps 侧,Bash (22%) 几乎是所有工程师的“必修课”。
- 而 Java (21%) 、Go (20%) 、C# (19%) 等企业级后端语言,以及以安全与性能著称的 Rust (16%) ,则构成了很多前端开发者向全栈或更底层系统方向延展的技能支点。
六、使用情况及痛点问题
TS与JS的使用情况
这张分布图有力地说明,TypeScript 已经从“可选增强”进化为 JavaScript 生态的默认选项:
- 有 48% 的受访者表示项目代码 100% 使用 TS 编写,体现出“一旦采用就倾向于全量迁移”的强烈偏好;在所有项目(包括纯 JS、纯 TS 与混合工程)中计算得到的平均采用率高达 77% ,意味着当今前端代码大部分都运行在类型系统保护之下;仍坚持纯 JS 的开发者仅占 6% ,多半集中在遗留项目或极轻量脚本场景;对于在做技术选型的新项目来说,这几乎已经构成了一个共识结论:默认使用 TS,而不是再纠结要不要上 TS。
AI代码生成情况
这张图刻画了 AI 在代码生成中的“真实渗透率”,结论很清晰:
- AI 目前更像是开发者的“副驾驶”,而非自动写代码的主力工程师。只有 10% 的受访者认为项目代码完全没有 AI 贡献,说明九成以上的团队或多或少已经在用 AI 提效;最集中的区间是 1%–20% 代码由 AI 生成(占 38% ),典型用法是让 AI 帮忙写模板代码、样板逻辑、特定算法实现或提供重构建议,而不是让它从零实现完整模块;总体算下来,平均约有 29% 的代码可以归功于 AI,这是一个不容忽视但远未到“全自动开发”的比例,也意味着复杂业务建模、架构设计和质量把控这些高阶工作,短期内仍牢牢掌握在人类开发者手中。
JS的痛点问题
在所有 JS 开发痛点中,真正让团队头疼的并不是某个语法细节,而是宏观层面的工程复杂度:
- 代码架构(Code Architecture) 以 38% 的提及率高居榜首,说明随着前端项目体量和生命周期不断拉长,如何拆分模块、划分边界、治理依赖、避免“屎山”成为最大挑战。
- 紧随其后的是 状态管理(State Management,34%) ,无论是 React 的 hooks 与各种状态库,还是 Vue 的 Pinia,跨组件、跨页面的复杂状态流转依然极易失控。
- 依赖管理(Managing Dependencies,32%) 也是老大难问题,
node_modules黑洞、版本冲突、安全漏洞以及 ESM/CJS 兼容性都会侵蚀工程稳定性。 - 相对而言,曾经广受诟病的 异步 代码(Async Code) 如今只剩 11% 的人视其为痛点,
Promise与async/await已经在很大程度上平滑了这块心智负担,这也从侧面证明语言与工具的演进确实可以逐步“消灭”一部分历史问题。
七、总结
首先,毫无疑问,TypeScript 已然胜出。它赢下的不只是「能编译成js的工具」的争论,而是语言本身。Deno 和 Bun 早已原生支持它。如今,你甚至能在稳定版 Node.js 中直接编写 TypeScript了。
而 Vite 的时代也已到来。今年,Vite 的下载量正式超越 webpack。与之相伴,Vitest 的使用量也大幅飙升。现在正是切换到新一代 Vite 工具链的好时机,而 2026 年注定会是全面落地之年—— 随着 Rolldown 稳定版发布,将驱动出更快的新一代 Vite,同时还有一体化的「Vite+」值得期待。
我们的开发工具从未如此优秀。但大家如今真正关心的却是另一个问题:AI 又将带来什么?
AI 即将彻底改变我们查阅文档、编写代码、做架构决策等一系列工作方式。各家公司都在全力押注全新的开发模式。对我们绝大多数人而言,AI 编程助手正在改变我们与代码交互的方式。
这是一件好事吗?
截至 2025 年底,已有近 30% 的代码由 AI 生成。Cursor 的人气暴涨,尽管它们暂时还无法撼动 VS Code 第一 IDE 的地位。而基于智能代理的工具,比如 Claude、Gemini 和 Copilot,也在迅速普及。
对开发者来说,无论使用什么工具,懂得分辨「什么是好代码」 将会比以往任何时候都更重要。紧跟新语言特性、知道该基于哪些库去开发,而非凭感觉从零手写一切,也会变得愈发关键。
现在,一天之内快速搭建新项目、轻松迁移老项目都已成为现实。这对框架和库的作者来说是个挑战。我们必须保证工具能持续服务好开发者,不能指望用户会一直因惯性而使用。
而这一点,恰恰值得所有开发者的期待。
就让我们拭目以待 2026 年的变化吧。我期待着更快的工具、更好的开发体验,以及技术真正成为能力放大器,强化我们自身的判断与选择。