-
作用域链是函数定义时固化下来的词法嵌套关系,非运行时动态生成;它存储在函数的[[Environment]]内部槽中,ChromeDevTools“Scope”面板显示的是其运行时快照,不可直接打印或遍历。
-
内存碎片是标记-清除GC后存活对象分散导致的空闲空间不连续现象,引发分配失败、内存虚高和GC效率下降;V8通过空闲期压缩缓解,开发者应复用大对象、减少波动并及时解引用。
-
router.push是一次受控的响应式视图迁移:先通过history.pushState同步URL并生成RouteLocation,再匹配路由、执行可中断的导航守卫链,最后协调组件卸载/挂载与响应式更新。
-
真正可控的复古滤镜需按sepia()→contrast()→saturate()顺序组合,参数分别控制在0.65–0.7、1.15–1.25、0.7–0.95区间,且须规避PNG/SVG渲染差异与浏览器兼容性问题。
-
commitlint.config.js是Node.js模块,必须导出合法JavaScript对象;混入HTML标签(如<div>)会导致SyntaxError:Unexpectedtoken'<'报错,因其非HTML文件,不参与页面渲染,仅被Node环境加载执行。
-
文字旋转模糊的根本原因是非90°整数倍旋转导致亚像素坐标,合成层强制对齐整数像素使子像素抗锯齿失效;filter:blur(0)仅偶发绕过渲染缓存,不稳定;真正解法是控制变换结果为整数像素,如calc()补偿、整数缩放比、避免奇数尺寸与百分比组合。
-
直接加border-collapse:collapse可解决边框重叠变粗问题,但必须作用于<table>元素,且需确保无border-style:hidden等覆盖样式,并通过computed样式验证生效;合并后应拆分控制border-width/border-color/border-style以精确调整。
-
闭包天然适合构建多端适配中间件,通过固化终端类型、能力标识、UI约束等上下文实现逻辑复用与环境隔离;各端注册专属闭包预置元信息,避免运行时判断;能力检测结果封存于闭包作用域,后续直接使用并内置fallback;洋葱模型中按端定制闭包栈实现差异化处理路径;参数化闭包支持运行时策略注入,兼顾隔离性与灵活性。
-
<script>标签中的同步代码是宏任务,由HTML解析时按规范入队;其内部产生的Promise.then、queueMicrotask等回调才构成微任务,事件循环在每个宏任务后清空微任务队列。
-
Node.js高并发短连接内存泄漏主因是清理不及时,关键查四类:未复用HTTPAgent、全局缓存无淘汰、事件监听器未解绑、定时器失控;需用ChromeDevTools快照对比定位Buffer/Map/Closure等增长对象,并绑定资源到请求生命周期统一清理。
-
arr.filter(Boolean)是清理数组假值最简洁有效的方式,它保留所有真值元素(如1、'hello'、true、'0'、[]),剔除false、0、''、null、undefined、NaN。
-
用mediaquery覆盖position值是最直接有效的方式,需显式重置position类型(如absolute→relative),避免仅改top/left;慎用百分比定位,优先结合transform或vh/vw;sticky需满足触发条件并考虑兼容性;容器查询适用于组件级响应式定位。
-
align-items在flex容器中不起作用的主因是父容器未设置display:flex或inline-flex;它仅对flex容器生效,控制交叉轴对齐,效果受flex-direction和父容器高度影响。
-
CSS中没有background-composite属性,它不属于任何标准;正确实现多背景合成应使用background-image多值配合background-blend-mode。
-
Cropper.js是证件照裁剪最优解,因其原生支持比例锁定、旋转缩放且纯前端处理保障隐私;手写Canvas易出坐标偏差、旋转偏移等问题;初始化需设准aspectRatio、viewMode、dragMode三参数;导出需双倍画布+scale提升DPI;自定义尺寸须重建实例而非仅调setAspectRatio。