-
JavaScript通过自动内存管理和垃圾回收机制避免内存泄漏,核心是标记-清除算法与分代回收策略,结合ChromeDevTools的堆快照和时间线分析可有效诊断内存问题。
-
ConstantVNode是编译期可确定且运行时永不变化的VNode,需满足:纯静态内容、无动态绑定、子节点全静态、无响应式指令、不含插槽/组件、不在动态上下文中;编译器通过transformHoist插件递归判定并提升。
-
本文详解如何用现代CSSFlexbox替代混乱的position:absolute,解决图片错位、文本消失、元素相互干扰等常见布局问题,提供可复用的响应式结构与实战代码。
-
点击下载证书时浏览器直接打开PDF而非保存是因Content-Disposition响应头缺失或前端未用download属性;纯前端需jsPDF+html2canvas生成,注意跨域图片、中文乱码(须嵌入NotoSansCJK字体)及微信拦截(需降级提示)。
-
Edge18及更早版本不支持IntersectionObserver,需运行时检测并降级;ChromiumEdge79–83对ResizeObserver支持不全;Edge18的fetch不支持credentials和AbortController;CSSGrid/subgrid存在显著版本断层;应坚持运行时检测+最小降级。
-
HTML倒计时精度不依赖定时器而依赖时间戳差值计算;必须用服务端返回的可信时间戳与Date.now()实时差值来计算剩余时间,UI更新可用requestAnimationFrame或动态setTimeout,但核心逻辑不可累加或依赖setInterval。
-
子元素填满父容器需父容器设明确高度(如height:100vh)并启用display:flex,子元素设flex:1;height:100%在flex中常失效,应优先用flex分配而非百分比高度。
-
Canvas绘图完全依赖JavaScript控制,需先获取2d或webgl上下文并确认可用性,再通过ctx方法绘制图形、实现动画和响应交互。
-
HTML5AppCache已废弃,必须迁移到ServiceWorker;因其设计缺陷(缓存不可控、白屏陷阱等)且被Chrome94+、Firefox85+、Safari16.4+彻底移除,manifest文件无效,需通过register()注册sw.js并手动管理缓存策略。
-
inert属性是浏览器原生的语义化暂停机制,使元素及其子树完全脱离交互与可访问性树;需现代浏览器支持(Chrome111+、Firefox121+、Safari18.0+),JS设置须用element.inert=true,不可用setAttribute。
-
SharedArrayBuffer需跨域隔离环境启用,且仅限Worker中使用Atomics.wait/notify等操作;其内存共享需配合原子操作与显式通知机制,避免线程阻塞和内存泄漏。
-
XMLHttpRequest.upload.onprogress不触发的根本原因是监听对象错误,必须绑定到xhr.upload而非xhr本身,且需在open()后、send()前设置;若后端未返回Content-Length或被代理截断,e.lengthComputable将为false,导致无法计算进度。
-
可通过浏览器开发者工具的“网络”选项卡查看document请求的URL获取HTML路径;源码中href/src属性提供资源相对路径;console.log(document.location.href)输出绝对路径;响应头如X-Original-URI可揭示服务端路径;file://URL可转换为本地文件系统路径。
-
媒体查询中修改position未生效,主因是目标元素有!important定位或父容器overflow:hidden裁剪;需检查计算样式,用更具体选择器替代!important,慎用%单位,iOSfixed异常可降级为absolute或改用sticky,折叠屏适配需用spanning媒体特性。
-
群组选择器通过逗号分隔多个选择器并共享样式规则,如h1,p,div{color:red;},可提升代码简洁性与可维护性,常用于统一标题字体、重置边距或设置链接颜色,使用时应保持格式清晰、避免过度组合。