-
Canvas绘图需先获取2D上下文对象:用document.getElementById()获取<canvas>元素,再调用getContext('2d');漏此步则绘图静默失败。fillRect画实心矩形,strokeRect仅描边,均以左上角为坐标原点;路径绘制须beginPath→moveTo/lineTo→stroke/fill,缺beginPath会导致路径叠加;clearRect仅清像素,不重置状态,彻底重置可用canvas.width=canvas.width。
-
微任务不会直接阻塞渲染,但会延迟渲染时机。因为微任务在当前宏任务执行后、渲染前执行,若微任务队列过长或执行复杂计算,将占用主线程,推迟浏览器更新屏幕的机会,导致页面卡顿。事件循环中,主线程执行完同步代码后优先处理所有微任务,之后才进行渲染和执行下一个宏任务。若微任务链过长,会持续推迟渲染,造成视觉上的不流畅。优化方式包括:1.拆分任务,使用setTimeout或requestAnimationFrame分批执行;2.合理使用Promise,避免嵌套与同步计算;3.将耗时任务移至WebWorkers中执行,
-
HTML树形结构与层级展示不冲突,但“树形”需靠DOM层级+CSS+JS协同实现;常见问题包括状态不同步、样式覆盖、SSRhydration失败及details/summary无法联动控制等。
-
CSSGrid注册页布局需语义化HTML、两列式网格对齐标签与输入框,并用display:contents使子元素直参网格排列,小屏时通过媒体查询转单列。
-
通过JavaScript动态将scrollHeight设置为滚动位置,配合flex-direction:column布局,可确保消息容器内容新增时滚动条始终自动锚定至底部,实现类WhatsApp/微信的即时聊天体验。
-
答案:无限滚动通过IntersectionObserver实现高效加载,提升用户体验但影响SEO和性能。需结合分页备用、URL状态更新及预渲染等策略优化。
-
移动端window.innerHeight忽大忽小是因Safari和Chrome(iOS)地址栏收起/展开时动态调整所致;应优先使用visualViewport.height并监听visualviewport.resize事件,fallback可用screen.height结合方向与经验偏移估算。
-
直接在header.php中硬编码<link>会覆盖WordPress主题更新、破坏样式依赖管理、导致加载顺序错乱;必须用wp_enqueue_style在wp_enqueue_scripts钩子中注册,确保依赖、缓存、路径和handle正确。
-
Set通过Same-value-zero机制实现去重,支持原始值和引用类型唯一性判断,其中NaN被视为相同,引用类型基于地址比较,内容相同但地址不同仍视为不同值,因此需借助JSON.stringify或深比较实现内容去重。
-
虚拟滚动通过只渲染可视区和缓冲区元素来提升长列表性能,利用占位器维持滚动高度,滚动时动态更新元素位置与内容,核心是计算可视区域的起始索引并复用DOM,结合requestAnimationFrame优化渲染。
-
高性能异步倒计时需用loop.time()+call_at()替代sleep实现绝对时间锚定,每次回调动态补偿调度延迟,并封装为可暂停、取消、查询剩余时间的类。
-
text-orientation必须与writing-mode配合使用,仅设text-orientation无效;mixed是中英混排竖排的默认推荐值,使汉字直立、ASCII字符顺时针旋转90°,符合出版规范。
-
用<inputtype="checkbox">实现品牌多选过滤需统一name(如brand)、为每个设置唯一value(如"apple"),包裹在<label>中保证可访问性与样式控制,JS通过FormData.getAll('brand')安全获取选中值数组。
-
自定义表单控件需通过伪元素+相邻选择器绑定状态,补全浏览器前缀、隐藏原生控件、适配暗色模式与禁用态,并确保可访问性。
-
VNode是平台无关的轻量级JavaScript对象,仅描述节点类型、属性、子节点等语义信息;Vue通过可插拔的渲染器将同一VNode树适配到Web、小程序、Native等不同平台,实现跨端复用。