-
JavaScript默认参数是在函数定义时为形参指定的初始值,仅当调用时传入undefined才生效;支持表达式、函数调用及前置参数引用,且每次调用重新求值。
-
侧边栏划入动画应使用transform:translateX()而非left或margin,以避免重排、启用GPU加速;初始设为translateX(-100%),配合transition和will-change:transform,贝塞尔曲线cubic-bezier(0.34,1.56,0.64,1)因y1>1实现超调弹性效果。
-
必须写animation:nameauto,因为auto使动画时长由滚动时间线动态决定,若设为固定时长(如2s)则与滚动脱节,Chrome115+支持,Firefox需开启实验标志。
-
URLSearchParams是现代浏览器解析URL查询参数最简洁可靠的方式,支持自动编解码、get/getAll/has等方法,但IE不支持,需polyfill;window.location.search含开头?,可直接传入。
-
ContentIndexingAPI仅注册已缓存URL供系统界面展示,不负责缓存或验证;离线可用性取决于ServiceWorker是否已精确缓存对应路径并在fetch中正确响应导航请求。
-
ShadowDOM中font-family不继承是设计使然,因仅部分可继承属性穿透边界,需通过:host{font-family:inherit}或adoptedStyleSheets显式继承。
-
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或深比较实现内容去重。