关于 modern-javascript
一项 JavaScript 技能,关注语言语义、运行时支持与工具链兼容性。适用于在保留代码行为的同时进行现代化改造,并核对相关标准和兼容性资料的开发者。
主要功能
- 01检查运行时与工具链支持
- 02保留求值和并发行为
- 03区分语法转换与 polyfill
- 04查阅针对性兼容资料
- 05验证行为变化与回退方案
适用场景
- 01按声明的运行时改造代码
- 02选择目标环境支持的语法
- 03评估异步迭代与 Promise 行为
- 04规划兼容性回退方案
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ccheney/ robust-skills --skill modern-javascript安装后在 Claude Code 中输入/modern-javascript确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/CHEATSHEET.mdCOMPATIBILITY.mdCONCURRENCY.mdES2016-ES2017.mdES2018-ES2019.mdES2022-ES2023.mdES2024.mdES2025.mdES2026.mdPROMISES.mdUPCOMING.md详细介绍
现代 JavaScript
将规范状态、运行时支持和工具链支持分开处理。用户的明确指示优先于本技能指南。
面向目标开展工作
将相关 JavaScript、所需行为和声明的运行时作为输入。根据功能需要检查 engines、浏览器目标、锁文件和构建配置。不要臆造基准,也不要仅为使用更新的语法而升级运行时。
优先使用受支持的标准化功能。如果用户或项目选择某项提案,且有受维护的转换工具或 polyfill 实现所需修订版,则可以采用该提案。已捆绑的版本和支持表只是某个时间点的快照;请根据以下来源核实状态变化。
保持语义
- 现代化代码时,保持变更、属性访问、迭代器消耗、求值顺序、错误传播和并发行为不变。
- 区分语法转换和运行时 polyfill。TypeScript 声明不会提供缺失的运行时 API。
- 将迭代器辅助方法视为惰性的单次遍历操作;
Array.fromAsync会按顺序消耗,而Promise.all会并发观察已启动的工作。 - 如果必须等待操作完成,不要使用
forEach(async ...)。拒绝和超时本身不会取消底层工作。 - 区分
fetch和structuredClone等宿主 API 与 ECMA-262 功能,并区分Intl与独立的 ECMA-402 标准。 - 不要引入已撤回的 Records & Tuples 语法,也不要在不说明的情况下切换传统装饰器语义与标准风格的装饰器语义。
交付所需代码或说明,并在相关时指出所需的兼容路径。验证行为变更以及随代码发布的任何回退方案;检查项应与变更相称,回答语法问题时不必要求运行项目的所有检查。
参考资料
加载所需的语义或兼容性主题,无需加载所有版本的资料。
| 任务 | 参考资料 |
|---|---|
| 运行时目标、Babel、TypeScript、polyfill | COMPATIBILITY.md |
| Async 函数和较早的年度新增功能 | ES2016-ES2017.md |
| 对象展开、异步迭代、RegExp、扁平化 | ES2018-ES2019.md |
| 类、属性检查、复制时变更 | ES2022-ES2023.md |
| 分组、Promise 解析器、缓冲区、Unicode 集合 | ES2024.md |
| Set/迭代器辅助方法、导入属性、RegExp | ES2025.md |
ES2026 新增功能,例如 Array.fromAsync | ES2026.md |
| Temporal、资源管理、提案、已撤回的语法 | UPCOMING.md |
| Promise 组合方法和错误行为 | PROMISES.md |
| 并发池、重试、取消、异步迭代 | CONCURRENCY.md |
| 精简语法速查 | CHEATSHEET.md |
使用已冻结的 ECMA-262 版本确认版本归属,使用 TC39 提案了解提案状态,并查阅运行时和工具链的官方文档以确认可用性。
评论
支持 Markdown