-
围绕 JavaScript TreeWalker.currentNode 说明如何把遍历游标移动到指定节点,再继续使用 nextNode 和 previousNode;同时厘清 root、whatToShow、filter 以及节点不在遍历范围时的处理边界。
-
用 Range.compareBoundaryPoints 比较两个 Range 的起点和终点,列清四种 how 常量的实际映射,解释 -1、0、1 的方向,并说明它与范围重叠判断的边界。
-
Range.createContextualFragment 的关键不在于把字符串变成节点,而在于让 Range 的 start node 成为 HTML 片段解析上下文。本文用容器和表格示例说明 Range 起点、DocumentFragment、节点检查、特殊标签和可信输入边界。
-
JavaScript 判断节点是否被当前文本选区覆盖时,可以直接使用 Selection.containsNode。本文区分默认的完整包含与 partialContainment=true 的部分相交,并给出 selectionchange 事件中的安全用法。
-
用JavaScript Selection.setBaseAndExtent设置正向与反向文本选区,区分锚点焦点和Range起止,解释节点偏移、短期保存恢复及输入框适用边界。
-
用 CSS scrollbar-width 的 thin 值缩窄长列表滚动条,同时区分 auto 与 none 的行为,处理根元素和嵌套滚动面板的作用范围,并保留键盘、滚轮和触摸用户的滚动入口。
-
弹窗或侧栏滚到底部后,页面跟着滚动通常是 scroll chaining。本文用 overscroll-behavior 解释 auto、contain、none 和 chain 的差异,并给出只限制纵向滚动的写法与排查边界。
-
用 Vite 的 mode 和 .env 文件管理构建期配置,再用公开的运行期配置入口承载部署差异,理解 import.meta.env 的静态替换边界并避免把敏感信息打进前端产物。
-
URLSearchParams.delete(name) 会删除指定键的全部参数值。本文从重复查询键出发,说明最小写法、URL 回写、delete(name, value) 的区别、浏览器兼容边界和可复用代码。
-
结合本地主动关闭意图与 CloseEvent 字段记录断开,说明1000、1006与 wasClean 的判断边界,给出单连接状态封装,并区分关闭事实与恢复策略。
-
ReadableStream.getReader() 的关键不是一次性拿到完整文件,而是取得一个 reader 后反复调用 read() 消费数据块。本文从文件流上传场景出发,说明锁定语义、Uint8Array 分块、fetch 请求体、完成与取消处理,以及默认 reader 和 BYOB reader 的选择边界。
-
Request.signal 本身不能直接调用取消方法,正确做法是在创建 Request 时绑定 AbortController.signal,发出 fetch 后调用 controller.abort(),再区分主动取消、超时和普通网络错误。本文还说明响应体读取阶段、signal 单次使用和生产发布检查边界。
-
用最小 JavaScript 示例说明 queueMicrotask 与同步代码、Promise.then、setTimeout 的执行顺序,解释微任务队列的先进先出和回调内再次入队的边界。
-
JavaScript Promise.any 会忽略先失败的候选,返回第一个 fulfilled 值;本文用原创示例说明调用方式、AggregateError 处理、输入顺序与和 Promise.race、Promise.all 的边界。
-
用 CSS prefers-reduced-motion 响应用户的减少动效偏好,在 reduce 状态关闭非必要 animation、transition 与平滑滚动,同时保留必要的状态反馈,并说明规则不生效时的排查边界。