-
font-display是@font-face中控制字体加载期间文本显示行为的描述符,可避免FOIT白屏或优化FOUT体验;常用值包括swap(立即回退后替换)、fallback(短阻塞后回退)和optional(仅缓存命中时使用)。
-
requestIdleCallback在浏览器明确判定主线程空闲(如帧结束、无高优任务)时触发,优先级低于rAF,空闲时间默认上限50ms,需支持中断恢复、避免同步阻塞与强制布局,任务粒度要细以适配动态空闲时间。
-
浮动元素无法撑开父容器高度,是因为其脱离文档流导致父容器无法感知其尺寸;推荐使用伪元素clearfix清除浮动,现代布局应优先选用Flex或Grid。
-
引导层设计不当会显著干扰学习,关键在于是否响应用户当前操作状态:需处理焦点捕获、禁用背景交互、适配动态DOM、优化CSS动画,并与业务状态机耦合。
-
HiddenClasses的offset是V8中记录属性相对于对象起始地址的字节偏移,用于快速定位属性并支持内联缓存;它不直接控制缓存对齐,但影响内存布局连续性,进而显著左右CPU缓存命中率。
-
Flexbox垂直居中只需父容器设display:flex并配合align-items:center,高度明确时最直接;若需兼容IE10–11,应使用Autoprefixer自动添加前缀。
-
forEach用于执行操作且返回undefined,适合处理副作用;map用于数据转换并返回新数组,支持链式调用,应根据是否需要新数组选择方法。
-
判断用户在哪个input卡住需监听聚焦离开、输入删除、停留无输入三类行为,结合实时校验、规范autocomplete、手动埋点分析,区分真实困难与设计缺陷。
-
根本原因是TypeScript将.module.css默认视为字符串索引类型Record<string,string>,而非具名类名对象;需用typed-css-modules自动生成.d.ts类型声明文件,并确保其被tsconfig包含、文件名正确(Button.module.css.d.ts)、关闭css-loader的esModule选项,最后重启TSServer。
-
ID选择器会直接破坏BEM权重平衡,因其权重为1,0,0,远超BEM要求的0,1,0,导致后续所有类名样式难以覆盖;它违背BEM“扁平化、可复用”的核心前提,使修饰符和状态切换失效。
-
减少请求数、压缩资源、合理缓存和优化加载时机是JavaScript网络请求优化的核心。通过资源合并、雪碧图、HTTP/2、内联关键资源减少请求数;启用Gzip/Brotli压缩、精简JSON、图片懒加载和动态导入降低传输体积;利用Cache-Control、ETag、内存缓存和ServiceWorker提升缓存效率;结合预加载、节流、并发控制和优先级调度优化请求时机。配合Webpack、CDN和接口聚合策略,可显著提升页面响应速度与用户体验。
-
WebSocket是基于TCP的全双工通信协议,支持持久连接、双向实时消息、轻量帧头,需手动处理重连与JSON序列化,适用于聊天、实时通知等场景。
-
主流深拷贝工具如JSON.stringify()→parse()、structuredClone()、Lodash_.cloneDeep()和fast-copy默认跳过不可枚举属性;仅fast-copy开启strict模式、手写描述符遍历或PHPDeepCopy等方案能完整保留。
-
font-weight未生效的主因是字体不支持对应字重,需通过DevTools检查计算值及字体文件是否存在;其次注意加载顺序、简写语法缺失font-family、打印/移动端兼容性等问题。
-
解构赋值可从数组或对象中提取值并赋给变量,使代码更简洁。①对象解构通过键名匹配,支持重命名(如name:userName)和默认值(如gender='unknown')。②数组解构按位置赋值,可用逗号跳过元素,...获取剩余项。③函数参数中解构可清晰接收对象或数组,支持默认值。④实际应用包括提取API数据、简化配置传递、交换变量、处理多返回值等,提升开发效率与代码可读性。