-
HTML中插入真正空格应使用 实体,它表示不可断行空格,不会被浏览器折叠;JS中需用'\u00A0',CSS排版更推荐margin、padding或white-space等属性。
-
真视频贴纸必须用canvas逐帧绘制而非CSS覆盖——需动态同步canvas尺寸、清空画布、预加载贴纸图像,并用ctx.save/translate/rotate/scale/drawImage控制变换,多贴纸需按时间轴筛选并插值动画。
-
原型继承内存优势在于方法共享不重复分配,而构造函数式类继承易导致方法重复拷贝;ES6class默认将方法定义在prototype上,与原型继承内存行为一致;误将实例独有数据放原型会引发污染而非内存增长。
-
父容器未启用Flex布局是flex-direction:column无效的主因;须确认display:flex已设置且未被覆盖,子元素为直系、未被position:absolute等排除出flex流程。
-
用::before或::after伪元素加Unicode箭头字符(如▼),通过:not(.collapsed)控制展开时rotate(-180deg),配合transition实现平滑旋转动画,避免图片/SVG兼容性与维护问题。
-
align-self用于控制单个网格项在网格区域内的垂直对齐,可覆盖align-items设置。取值包括flex-start(顶部)、flex-end(底部)、center(居中)、stretch(拉伸,默认)和baseline(基线对齐)。例如在display:grid容器中,.item-center{align-self:center}使该元素垂直居中,.item-bottom{align-self:flex-end}使其底部对齐,而其他项仍按align-items:stretch拉伸。注意仅直系子元
-
video元素默认不响应left/top定位,需设position:relative或absolute才能生效;用transform:translate()比top/left更高效且不受overflow影响。
-
requestIdleCallback是浏览器在空闲时段执行低优先级任务的API,适用于日志上报、非关键DOM更新等“做了更好,不做也无妨”的场景,不适用于需确定性时机的任务。
-
background-attachment:fixed在移动端基本失效,因Chromev56+和Safari主动降级为scroll;需满足无transform父容器、height:100vh等硬性条件才能在桌面端稳定工作;移动端应fallback至scroll+JS动态background-position或使用scroll-drivenanimations。
-
所谓“单例工厂”不是独立设计模式,而是单例生命周期管理与工厂函数创建逻辑的组合实践;它通过主应用启动时统一调用工厂、注入已实例化的单例对象,实现运行时动态依赖切换,避免插件内直接new导致的状态不一致、环境强耦合与测试脆弱等问题。
-
WebGL是基于OpenGLES的JavaScriptAPI,可在网页canvas中渲染2D/3D图形,利用GPU加速,无需插件。它通过顶点和片元着色器(用GLSL编写)控制渲染流程,核心步骤包括获取上下文、编译着色器、链接程序、传入顶点数据并绘制。示例中绘制红色三角形需设置顶点位置、颜色,并调用drawArrays。attribute传递顶点数据,uniform传全局参数,varying用于着色器间通信。尽管Three.js等库简化开发,掌握原生WebGL有助于性能优化与调试。
-
超时Promise必须用reject触发,确保race状态为rejected以便catch明确捕获;每次请求需新建独立timeout实例;应自定义TimeoutError类并用instanceof判断;配合AbortController中断fetch请求,abort后统一转为TimeoutError。
-
background-attachment:fixed必须配合background-repeat:no-repeat、background-size:cover/contain和background-position:centercenter才生效;需设在全屏wrapper上,避免用于Bootstrap容器;IE和旧Safari需@supports降级;移动端卡顿源于合成限制,模糊主因是图源分辨率不足。
-
sticky元素“滚到父容器底就消失”是因为其被限制在粘性约束矩形内生效,超出该矩形底部即退回到relative定位。该矩形由最近可滚动祖先的内容边界决定,可通过DevTools观察position计算值变化或getBoundingClientRect()验证。
-
trycatch仅捕获同步运行时错误(如ReferenceError、TypeError),无法捕获语法错误(解析阶段)、异步错误(需在回调或async/await中使用)、Promisereject(需.catch()或await配合trycatch)。