前端技术文章
-
用 Web Crypto 生成 Ed25519 密钥对、签名与验签,说明公钥导入、消息字节编码、false 与异常的区别,以及兼容性、私钥导出和公钥信任边界。194 收藏 -
围绕 TypeScript moduleResolution bundler 说明 package.json exports 中 types、import 与 default 的配合方式,给出声明文件、运行时代码和 tsconfig 的原创示例,并整理常见解析边界。186 收藏 -
CSS 的 display 默认不能像 opacity 一样平滑过渡。本文用一个可关闭提示面板说明 transition-behavior: allow-discrete、display 过渡和 @starting-style 如何配合,并给出旧浏览器降级写法。181 收藏 -
本文说明如何使用 SVGGeometryElement.getTotalLength() 取得 SVG 路径总长度,区分 user units、CSS 尺寸与 pathLength,并处理路径动态修改和元素选择边界。180 收藏 -
文章 · 前端 | 2天前 | javascript · 前端开发 · 浏览器API · JavaScript sort 浅拷贝 toSorted Array.prototype.toSorted 不可变排序
JavaScript Array.toSorted 怎样避免原数组被改写?本文对比 sort() 与 toSorted() 的修改边界,说明数字和对象排序的比较函数写法、浅拷贝限制,以及旧运行时使用 [...items].sort() 的安全降级。177 收藏 -
DocumentFragment插入时移动的是子节点,片段对象仍保留。通过节点引用、返回值和重复渲染示例,说明为什么片段变空,以及重新构建、深克隆与安全文本写入的边界。169 收藏 -
讲清 IntersectionObserver threshold 数组如何决定可见比例的通知粒度,结合代码解释 thresholds 排序、回调 entries、intersectionRatio、isIntersecting 以及密集阈值的边界。167 收藏 -
在 Service Worker 的 fetch 入口按 GET 与静态资源白名单过滤 Cache 读写,保留匹配条件,区分网络失败与存储失败,并解释 ignoreMethod 的适用边界。166 收藏 -
使用 Vue 的 InjectionKey 把 provide 与 inject 连接到同一个 TypeScript 上下文类型,说明字符串 key 的 unknown、inject 的 undefined、默认值、响应式 ref 和最近祖先覆盖规则。164 收藏 -
HTML dialog 的 cancel 是关闭请求,适合在 Esc 或 requestClose() 时拦截;close 是已经关闭后的通知,适合读取 returnValue、清理状态和同步外部界面。本文用事件路径和代码示例说明两者的边界。159 收藏 -
用 CSS shape() 和 clip-path 为卡片定义可伸缩裁剪路径,说明 from、line、curve、百分比、rem 与 calc() 的配合方式,并比较 shape() 和 path() 的适用边界。151 收藏 -
对比 TypeScript 包内 #imports 别名与当前包名自引用的解析规则,给出 package.json、tsconfig.json 和发布目录的配置边界。139 收藏 -
动态创建正则时,先用 RegExp.escape() 将搜索词、域名等外部字符串转成字面量,再拼接固定的正则语法。本文说明手写转义的误区、组合方式、兼容策略和输入边界。134 收藏 -
用原生 HTML details 的 name 属性实现互斥手风琴,说明同组规则、多个 open 的源码顺序、details[open] 样式和 toggle 事件的使用边界。129 收藏 -
文章 · 前端 | 3天前 | javascript · 异步编程 · 前端开发 · JavaScript Promise Promise.withResolvers resolve reject 异步事件
Promise.withResolvers() 返回 promise、resolve 和 reject 三个控制点。本文从一次性外部事件与连续数据批次两个场景说明如何拆开 Promise 控制器、何时重新创建,以及生命周期和兼容性边界。126 收藏