-
linkrel="preload"是最标准可控的图片预加载方式,需在head中静态声明并指定as="image";Image对象适合运行时条件加载与状态监听,二者配合缓存策略和尺寸声明才能实现首屏秒出。
-
position:sticky失效主因是父容器无明确高度或可滚动溢出、元素display不兼容、父容器存在transform等新格式化上下文、top未显式设置;需确保最近块级祖先满足滚动前提,且sticky元素在流中初始位置合理。
-
锚点跳转失效主因是id与href匹配细节或DOM状态异常:id须全局唯一且不以数字开头;href需为合法hash格式;目标元素须已渲染且可见;可用scrollIntoView()替代或监听hashchange手动滚动,并用scroll-margin-top解决吸顶遮挡。
-
浮动导航栏应使用position:fixed而非float,因float本用于图文环绕,无法实现视口固定悬浮,会导致滚动消失、父容器塌陷、定位失效;fixed定位配合top/left、z-index和bodypadding-top才是正确解法,并需针对移动端缩放、软键盘、横竖屏等边界场景做适配。
-
IntersectionObserver是检测元素是否进入视口的现代标准方案,需配置threshold、root等参数并配合will-change和class切换实现顺滑渐现动效。
-
打印时动画需用@mediaprint逐项重置:animation-name:none、animation-duration:0s、animation-delay:0s、animation-iteration-count:1、transition:none,并覆盖伪元素及动态类名,确保样式优先级和加载顺序正确。
-
尾调用优化在ES6中要求尾调用重用当前栈帧,避免栈溢出,适用于函数尾位置直接返回另一函数调用的场景,如尾递归阶乘函数。
-
Promise.finally在Promise状态变为fulfilled或rejected后必定执行,不接收参数,不影响链式返回值,也不捕获或阻止错误传播,内部抛错会覆盖原始错误。
-
在Prisma中将对象赋值给JSON列时,TypeScript对interface要求显式索引签名[key:string]:any,而type字面量则天然兼容——这源于二者在结构兼容性检查中的本质差异,理解该机制有助于合理选择类型声明方式。
-
用localStorage实现最近访问菜单需标准化URL(origin+pathname)、限制10条、SPA监听路由变化,点击菜单时先saveToHistory再跳转,避免sessionStorage因关闭丢失且不跨标签页。
-
推荐使用基础正则/https?://1+?.(jpg|jpeg|png|gif|webp|svg|bmp|tiff?)(?=\s|$)/gi匹配HTTP(S)图片链接,增强版可扩展支持//协议相对URL和/开头的绝对路径,生产环境优先用DOM解析确保准确。\s↩
-
HTML中用div套div需嵌套标签并配合CSS设置宽高、边框等样式;注意外边距合并、定位脱离文档流、display属性影响及box-sizing盒模型,默认content-box会导致尺寸偏差。
-
JavaScript中I/O操作与宏任务密切相关,1.I/O操作完成后其回调会被放入宏任务队列等待执行;2.这种机制确保主线程不被阻塞,保持响应性;3.宏任务优先级低于微任务,微任务会先于宏任务执行;4.处理大量I/O时可通过批量处理、防抖节流、WebWorkers、流式处理等方式避免性能瓶颈。
-
可以,但需文档托管于公开HTTPS地址且设为“任何人可查看”,src参数须URL编码;不支持本地路径、加密文件及移动端Safari,国内常因域名拦截失败。
-
Esc键是最可靠退出方式,浏览器原生支持且不受JS卡死影响;F11无效于视频全屏;脚本退出需兼容处理;鼠标悬停无反应可双击或右键;刷新页面可重置全屏状态。