-
visibility:hidden保留布局、禁用交互且不被读屏软件识别,opacity:0保留布局和交互、支持过渡动画但需配合pointer-events:none和aria-hidden才安全。
-
HTML5<audio>仅支持特定容器与编码组合:MP3需MPEG-1LayerIII、WAV限16位PCM、OGG仅Opus/Vorbis、M4A/MP4须AAC-LC或ALAC;浏览器兼容性差异大,需用<source>按优先级fallback并精确声明type,且服务端须配置正确Content-Type、CORS及Range支持。
-
for循环在多数场景下仍是最快选择,因现代引擎深度优化;forEach适合副作用操作但无法中断;map/filter等声明式方法应按需使用,注意性能开销;for...of兼顾可读性与控制力;真正瓶颈常在循环体内操作。
-
游戏循环应使用requestAnimationFrame而非setInterval,以对齐屏幕刷新率、省电且稳定;需分离更新与渲染,用固定时间步长累积deltaTime并保留余量,避免逻辑帧率波动;update只改状态,render只负责绘制;须清理raf防止内存泄漏。
-
Headless浏览器自动化测试核心在于稳定性、可调试性及符合真实用户行为,推荐Puppeteer和Playwright而非Selenium;前者通过CDP精准控制加载时机、字体就绪、多浏览器兼容等,后者统一API覆盖Chromium/WebKit/Firefox并支持真实Safari预览版。
-
BigInt与Number不兼容,因类型系统禁止隐式转换,混合运算如1n+1会抛TypeError;必须显式转换,且BigInt()构造函数不接受Number参数,JSON、Math、Date等API均不支持BigInt。
-
生成器函数是用function*声明、通过yield暂停恢复执行的特殊函数,调用返回迭代器,next()方法控制执行节奏并支持双向通信。
-
TDD通过“红-绿-重构”循环提升代码质量:先写失败测试,再写最简实现,最后优化结构;配合Jest等工具搭建环境,编写纯函数与模块化代码,确保可测性;以add函数为例,从测试出发逐步实现功能,验证逻辑正确性,增强项目稳定性与维护性。
-
顶层await允许在ES模块顶层直接使用await,无需包裹在async函数中。它使模块能暂停执行直至异步操作完成,适用于动态配置加载、条件导入和资源预初始化。需使用.mjs文件或设置"type":"module",并在支持的环境(如Node.js14.8+、现代浏览器)中运行。模块变为异步后会阻塞导入者,应避免滥用以防影响性能。主流浏览器和Node.js已广泛支持该特性。
-
qrcode.js不支持直接美化,需换库(如@xkeshi/qrcode)或用CSS容器装饰、Canvas二次绘制;前者支持logo、多色模块等原生配置,后者可导出含样式的高清PNG。
-
:root是CSS伪类选择器,匹配文档根元素(HTML中为<html>),特异性高于html选择器,主要用于声明全局CSS自定义属性,是主题切换和设计系统变量管理的首选挂载点。
-
data-*属性用于存储私有数据,通过dataset访问和修改,支持动态交互与数据传递。
-
display:none彻底移除元素布局空间,不占文档流、不触发重排、无障碍支持弱;visibility:hidden保留布局占位但不可见,支持transition但无渐变效果;opacity:0实现平滑淡入淡出,仍响应交互且需配合pointer-events:none和焦点管理。
-
clamp()在不支持的浏览器中整条声明被丢弃,导致布局塌陷;@supports应检测完整调用形式如font-size:clamp(0px,0px,0px),基础值须前置且静态,兼容旧环境需用calc()+媒体查询模拟,并统一所有响应式属性的降级策略。
-
HTML5空格在Edge中本身正常,所谓“消失”实为CSSwhite-space默认值normal导致的合并裁剪,或字体渲染差异、HTML压缩等外部因素所致。