-
使用CSS伪类:valid和:invalid结合:placeholder-shown可实现无JavaScript的表单验证;通过border颜色变化和伪元素提示反馈输入状态,配合transition提升交互流畅度,适用于轻量级项目。
-
CSS框架因预设大量样式导致冗余、选择器低效、响应式规则阻塞解析,天然难达极致性能;Tailwind需配置content裁剪、禁用未用变体、避免@layer绕过清理;Bootstrap5须Sass源码定制导入;自研原子系统更轻但需工具生成、静态可分析、合并文件。
-
优先选BEM或CSSModules+BEM,因StyledComponents依赖JS运行时注入样式,在SSR、微前端、邮件模板等场景易失效;BEM无环境限制,CSSModules解决全局冲突,BEM补足语义,二者叠加最佳。
-
闭包不能直接实现原子性,它仅是作用域封装机制;原子性需依赖硬件指令、内核锁(如flock)或POSIX原子操作(如rename)。闭包可辅助构建逻辑上原子的同步封装层,但本身非同步原语。
-
aria-flowto仅在当前DOM树内生效,不触发页面跳转;目标元素须存在、ID唯一、未被aria-hidden掩盖,且需tabindex="-1"或"0"方可被屏幕阅读器停驻。
-
合理优化LocalStorage可提升性能与稳定性:合并写入、防抖保存、聚合数据结构、增加异常处理与容量管理,并注意跨标签页同步问题。
-
background-position动画必须用像素或百分比,禁用em/rem;需确保单位一致、容器尺寸明确、overflow:hidden裁剪、首尾帧视觉无缝衔接,且animation-iteration-count:infinite不可省略。
-
在 React 里,如果用 useCallback 包住一个依赖组件 state 的事件处理函数,却没有把这个 state 一并写进依赖数组,问题就来了:闭包会一直拿着初始的 state 值不放,结果看起来就像状态更新只成功了一次。解决办法其实很直接,把函数真正依赖的 state 变量,比如 dar
-
本文介绍多种可靠方式判断字符串首字符是否为数字(0–9),重点解决正则误判、空字符串边界问题,并提供简洁高效的替代方案。 本文介绍多种可靠方式判断字符串首字符是否为数字(0–9),重点解决正则误判、空字符串边界问题,并提供简洁高效的替代方案。在 Ja vaScript 里,如果要判断一个字符串(比如
-
PendingPromise本身不导致内存泄漏,但若持有闭包、DOM、大对象或async上下文等强引用,则会阻碍GC;需通过DevTools检查Retainers、避免悬空链、注入超时与取消机制来防控。
-
HTML本身不能CDN加速,需将script/link/img等外部资源替换为CDN域名URL;通过浏览器Network面板检查RequestURL是否为CDN地址及响应头x-cache等字段验证是否命中CDN。
-
三位十六进制颜色无浏览器解析歧义,所有现代浏览器均将#rgb统一展开为#rrggbb;仅当RR、GG、BB各自成对相同时才可安全缩写,如#ff6600→#f60,而#fe0123不可缩,误缩会导致色值偏差。
-
:read-only和:read-write伪类仅响应HTML的readonly属性(非JS属性),仅对input/textarea原生生效,contenteditable需验证,disabled元素不匹配;:read-only元素仍可聚焦和提交,而:disabled彻底禁用交互;IE和旧Safari不支持,需@supports或属性选择器兜底。
-
原生Set没有symmetricDifference是因ES2015设计时为避免API膨胀而刻意省略,需手动实现;可靠写法是遍历两集合分别添加对方不含的元素,返回新Set,兼容任意可迭代对象且基于SameValueZero比较。
-
原生<dialog>默认不渲染,必须用showModal()或show()激活;仅设open属性可初始显示,但showModal()才启用遮罩、ESC关闭和焦点锁定。