SuperAPI AI 工具集

modern-javascript

编程与开发

查看项目

更新于 10-15 14:30

技能介绍

Modern JavaScript 是一个面向 JavaScript 语言行为实现与调试的技能,来源为 ccheney/robust-skills。其核心用途是帮助开发者在处理 Promise 完成、异步迭代、可变性以及运行时兼容性等问题时,依据规范、运行时和工具链的实际情况做出正确决策。

用途方面,该技能适用于需要实现或调试 JavaScript 语言行为的场景,尤其是涉及 ECMAScript 新特性、异步流程控制、迭代器语义以及跨运行时兼容性的任务。它强调将规范状态、运行时支持与工具链支持三者分开看待,避免混淆。

主要能力包括:针对目标环境工作,检查引擎、浏览器目标、锁文件和构建配置,不凭空假设基线或仅为使用新语法而升级运行时;优先采用已标准化的受支持特性,在用户或项目选择且存在维护中的转换或 polyfill 实现所需修订版时也可采用提案;在现代化过程中保持可变性、属性访问、迭代器消费、求值顺序、错误传播和并发行为不变;区分语法转换与运行时 polyfill,并指出 TypeScript 声明不提供缺失的运行时 API。

使用方式上,该技能建议按需加载语义或兼容性主题,而非加载所有版本。它提供了参考文档映射,例如运行时目标、Babel、TypeScript、polyfill 对应 COMPATIBILITY.md;异步函数和早期年度新增对应 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。

适用场景包括:实现或调试异步迭代、Promise 组合、可变性保持、运行时兼容性处理、语法转换与 polyfill 选择等。限制方面,该技能明确不应在需要等待完成时使用 forEach(async ...),拒绝和超时本身不会取消底层工作;迭代器助手是惰性且单次遍历的,Array.fromAsync 顺序消费,而 Promise.all 并发观察已启动的工作;需区分 fetch、structuredClone 等宿主 API 与 ECMA-262 特性,以及 Intl 与 ECMA-402 标准;不得引入已撤回的 Records & Tuples 语法或静默切换装饰器语义。用户明确指令优先于该技能指南。