-
<meter>用于表示静态度量值在固定范围内的相对位置,如磁盘使用率、评分等;<progress>才表示任务完成进度。二者语义不同,不可混用,且<meter>必须指定value、min、max,optimum决定理想状态并影响颜色。
-
WeakRef仅避免阻止GC,不自动清理缓存;FinalizationRegistry才是感知对象真正回收并触发缓存键删除的唯一机制,二者需配合使用且不可替代。
-
Tailwind的:active无法直接触发波纹动画,因其默认不启用active变体,且:active状态持续时间极短(毫秒级),难以匹配200ms+的波纹动画节奏;可靠方案是用JS控制类名生命周期,通过onMouseDown触发、onAnimationEnd清理,并配合relative/overflow-hidden容器与自定义ripple@keyframes实现。
-
WebLocksAPI不能替代IndexedDB事务,但它是唯一能跨标签页串行化写操作的原生机制;必须将openDB、事务创建、put()和awaittx.done全部包裹在navigator.locks.request()回调中,否则锁提前释放会导致静默覆盖。
-
根本原因是content-visibility:auto跳过不可见元素渲染,导致其DOM占位高度默认为0px;当元素进入视口渲染时高度突变,引发文档高度重算和滚动条抖动。
-
内联样式优先级高于外部样式,因特殊性更高;但若外部样式使用!important且内联未用,则外部样式生效,层叠顺序与选择器特殊性共同决定最终效果。
-
双栏对照界面核心是语义对齐与实时响应,需用<sectionclass="translation-pair">包裹原文/译文DOM节点,配合display:grid布局、input事件监听+防抖、textContent安全插入及响应式flex-direction:column降级,确保跨设备映射准确、交互连贯。
-
HTML无法直接获取Wi-Fi或蜂窝信号强度,需依赖JavaScript调用navigator.connection等API间接判断网络质量,仅支持effectiveType和downlink,不提供dBm或格数。
-
不能只写filter:blur(8px)就完事,因为浏览器无法对未加载完成的img元素触发CSS过渡,初始渲染可能直接跳到清晰态或加载瞬间突变,根本看不到过渡效果;关键在于用JS监听load事件后通过类名切换(如.loaded)精准控制过渡时机,并配合transition和合理blur值(2px–6px)实现平滑模糊→清晰效果。
-
ShadowDOM事件默认不穿透边界,外部监听器的event.target被重定向为宿主元素;需用event.composedPath()[0]获取真实目标,或派发bubbles:true且composed:true的自定义事件实现跨边界通信。
-
@babel/plugin-transform-react-jsx不能删调试代码因仅做语法转换、不分析语义;需自定义插件匹配console、debugger和process.env条件判断,并前置声明以确保AST可识别。
-
Promise是ES6引入的异步编程标准对象,用于解决回调地狱、错误处理分散及缺乏统一控制等问题;它表示异步操作的三种状态(pending/fulfilled/rejected),通过newPromise()创建,支持.then()/.catch()链式调用与Promise.all/race/finally等组合方法。
-
SVG是基于XML的矢量图形格式,可内联于HTML中,通过viewBox定义逻辑坐标、width/height控制显示尺寸;JavaScript可用createElementNS(指定命名空间)创建图形元素并操作属性、事件与动画,path元素通过d属性实现复杂路径绘制。
-
正则中|应在分层建模后用于聚合语义等价的维度取值,而非简单枚举;需用括号明确分组、^$锚定,并推荐命名捕获提升可维护性。
-
ResizeObserver是监听组件尺寸变化的最优方案,它直接绑定元素、精准触发回调、避免全局事件冲突,支持iframe和阴影DOM,且提供contentRect数据;相比window.resize,它能感知布局重排等细粒度变化。