用途:本技能是编写 evergreen-2026 浏览器中操作 DOM 的原生 JavaScript / TypeScript 时的操作参考,重点覆盖 ES2024 在 DOM 边界相关的组合、深拷贝、Promise、迭代器能力,以及让 lib.dom.d.ts 更顺手的 TypeScript 收窄模式。
主要能力与规则:深拷贝数据应使用 structuredClone,而非 JSON 往返;需要在 Promise 外部调用 resolve 时使用 Promise.withResolvers();分组使用 Object.groupBy(字符串/符号键)或 Map.groupBy(任意对象键);读取事件目标的 value、checked、dataset 前先用 instanceof 收窄,不用类型断言;对 scheduler.yield() 做特性检测并回退到 setTimeout(_, 0);面向旧移动端 WebView 时检测 Iterator 辅助方法;对 getElementById、querySelector、closest 的 null 返回做判断,不用非空断言;JSON 模块使用 import ... with { type: "json" },而非已废弃的 assert。
使用方式:提供决策树(迭代器辅助方法与数组方法选择、scheduler.yield 与 rAF/setTimeout 选择、instanceof 与类型断言选择、深拷贝策略)与代码模式,包括 Object.groupBy 分组、Promise.withResolvers 事件流、带 transfer 的 structuredClone、在 NodeList 上使用惰性 Iterator 链、scheduler.yield 回退、事件目标收窄、自定义事件类型增强、querySelector 泛型、Import Attributes 及推荐的严格 tsconfig 标志。
适用场景与限制:适用于原生 JS/TS 与 DOM 交互,需针对 evergreen 与旧环境做特性检测。不涉及 React、Vue、Solid、Svelte、Angular 钩子模式、打包器配置、Node.js API 或 Web Components 生命周期。各特性基线状态不同:Iterator 辅助方法为 2025 部分基线,scheduler.yield() 仅 Chromium 稳定版提供。