-
VueRouter路径标准化是初始化时对path字符串的必经清洗处理,包括压缩多斜杠、折叠./..、统一根路径等,确保匹配稳定;它发生在createRouter阶段,由normalizePath()执行。
-
return()方法是迭代协议中保障资源安全释放的关键机制,用于在迭代被提前终止时执行清理逻辑并返回{value:any,done:true}。
-
原生TouchEvents实现真实多点触控缩放的关键是连续低延迟追踪两指相对关系并结合视觉锚点平滑变换:需在touchstart时严格校验双指、计算初始距离与中心点,touchmove中过滤抖动、用transform实现零重绘缩放与平移补偿,并通过rAF批量更新、意图识别、惯性衰减及弹性阻尼提升触控感。
-
滚动监听不卡,但回调中查DOM、改样式、发请求必卡;应仅做最轻操作,优先用CSSsticky实现吸顶,懒加载用IntersectionObserver,必须用scroll时加passive和requestAnimationFrame节流。
-
异步加载脚本在JavaScript中主要通过使用<script>标签的async和defer属性或动态创建<script>标签实现。1.async属性允许脚本在下载时继续解析HTML,完成后立即执行。2.defer属性使脚本在文档解析后但DOMContentLoaded前执行。3.动态创建<script>标签提供更灵活的控制,适合处理依赖和加载失败。
-
这不是bug,是Grid默认行为:grid-auto-rows为auto时各行高度由内容独立决定;1fr需父容器有明确高度上下文;align-items:stretch被子项尺寸声明覆盖;跨行不改变轨道自身高度。
-
不能只靠媒体查询单设column-count,必须配合break-inside:avoid、column-gap及阶梯断点;否则小屏会硬切文字、劈开图片、产生空白列,且列高严重不齐。
-
SVG内联图标fill不生效,主因是SVG自带fill属性优先级高于CSS;解决方法为删除原fill或改用fill="currentColor",再通过CSS变量(如--icon-color)或color属性统一控制颜色。
-
clear:both的空div必须是父容器内浮动元素后的直接块级子节点,否则无效;常见失效原因包括位置错误、父容器为flex/grid、display:none或高度被锁定。
-
ServiceWorker无法重定向404,但可在fetch阶段拦截图片请求并静默替换为预缓存占位图实现兜底;需在install时预缓存占位图,fetch中用request.destination==='image'识别、结合缓存匹配与超时控制返回占位图,注意CORS图片需用no-cors模式处理。
-
CSP无法防御CDN篡改,必须与SRI(integrity+crossorigin)配合:CSP控制来源白名单,SRI校验内容指纹;integrity需搭配crossorigin="anonymous"才生效,且哈希须随资源更新。
-
行内元素的margin-bottom不触发布局计算,是CSS规范规定的行为;其垂直空间由line-height和基线决定,需改display为inline-block或block才生效,否则可用padding-bottom、transform或line-height替代。
-
clip-path加在grid容器上仅裁剪视觉,不改变子项布局位置;子项仍按原始网格线排列,超出部分被隐藏,hover和点击区域照常响应。
-
确保组件卸载时内存彻底回收,关键在于使用同一函数引用配对添加和移除事件监听器,并在useEffect清理函数中及时执行removeEventListener;避免闭包滞留和setState泄漏。
-
视频课程页面需同时解决播放控制、目录跳转、响应式布局、移动端静音拦截四件事;video必须加muted+autoplay+playsinline(含webkit前缀),双source兜底,preload="metadata",目录跳转须currentTime+play()显式触发并捕获错误,卡片用grid+aspect-ratio,禁用页面滚动改用容器滚动,错误时回退poster图,跳转逻辑与播放状态须解耦。