-
轮播图需手动绑定keydown事件监听ArrowLeft/ArrowRight键,容器必须设tabindex="0"以获取焦点,同时调用preventDefault()防止页面滚动;空格键可增强兼容性,移动端应通过用户交互后启用键盘控制。
-
TrustedTypes不能彻底重构字符串拼接逻辑,但能强制将高危DOM写入点切换为类型受控对象;需启用CSP响应头(trusted-typesdefault;require-trusted-types-for'script')、全覆盖sink(innerHTML、insertAdjacentHTML、document.write、eval等)、定义最小必要策略(禁用正则过滤、优先用textContent)、并适配框架与第三方库。
-
元素最终渲染高度=content高度+padding-top+padding-bottom+border-top+border-bottom(标准盒模型),padding独立撑开空间且不受line-height影响。
-
em用于语义强调,屏幕阅读器重读、SEO识别;i仅表斜体样式,适用于外文词、船名等非强调场景,二者语义不同不可混用。
-
主题切换不必强制用JavaScript控制:root,但主动切换主题必须依赖JS修改:root自定义属性以触发重绘;纯CSS仅支持有限响应,如系统暗色模式。
-
使用语义化标签提升可读性与可访问性,如用<header>、<nav>、<main>等替代<div>;合理组织标题层级,正确嵌套<h1>到<h6>;为图片添加alt属性,表单关联label,避免滥用标签,确保结构清晰、易于维护。
-
abbr标签的title属性必须显式设置才能显示悬停提示,否则无任何提示;其原生tooltip不可被CSS修改,读屏工具优先读aria-label,但悬停仅显示title,自定义交互需改用span+aria-describedby方案。
-
CacheAPI只能在ServiceWorker或Worklet线程中使用,页面主线程调用caches.open()会因上下文受限抛出SecurityError或返回undefined;必须通过HTTPS(或localhost)注册ServiceWorker,且所有缓存操作需在install/fetch事件中配合event.waitUntil()和request.clone()等规范写法执行。
-
使用JavaScript检测内存泄漏可以通过ChromeDevTools和Memlab等工具实现。1.使用ChromeDevTools的Memory标签页拍摄HeapSnapshot,比较不同时间点的快照,识别未及时回收的对象。2.使用Memlab通过模拟用户行为自动化检测潜在泄漏。结合工具和最佳实践,如理解引用机制和使用弱引用,可以有效检测和避免内存泄漏。
-
模块化熔断控制是将“失败判定—状态切换—逻辑路由—恢复探测”四步嵌入异步链路,实现可配置、可观测、可回滚的确定性熔断;主备模块须遵循统一输入/输出协议与错误分类;熔断器按业务粒度创建并绑定具体模块;半开状态按比例放行试探请求,结合成功率动态恢复;全流程可观测覆盖状态变更、备份指标与链路追踪因果链。
-
Safari对calc()结果执行向下取整(floor),导致宽度/高度差1px;Chrome、Firefox则四舍五入或保留小数,这是WebKit布局阶段的数值处理策略,并非bug。
-
浮动实现导航栏需对li设float:left并清除ul浮动,推荐伪元素法:.nav-list::after{content:"";display:table;clear:both;},同时li设margin-right、a设display:block以确保点击区域和间距。
-
尾调用优化(TCO)是JavaScript引擎在严格模式下对满足特定条件的尾调用进行的栈帧复用优化,但主流引擎目前均未默认启用,代码符合语法仍会栈溢出,需手动转循环或用蹦床模式。
-
IndexedDB天然离线可用,数据存于浏览器本地,关网后仍可读写;但完整离线体验需ServiceWorker、CacheAPI与IndexedDB协同;离线写入需加syncStatus字段并幂等同步;注意各浏览器兼容性与存储上限限制。
-
现阶段HTML函数和可拆卸键盘在Web开发中均不实用:HTML是标记语言,所谓“HTML函数”实为框架封装的组件抽象;浏览器API不支持访问物理键盘模块,无法感知拆卸状态,纯前端无法实现硬件级响应。