-
MutationObserver回调不触发最常见原因是配置漏项或目标节点失效:需显式调用observe()且target必须真实存在;监听class/style需用setAttribute而非property赋值;childList监听需注意subtree和removedNodes处理;attributeFilter与attributeOldValue须配合使用以避免性能问题。
-
dialog默认不显示,需显式调用showModal()才呈现;必须已挂载DOM、重置样式、处理无障碍,且Firefox不支持::backdrop。
-
柯里化是让函数分步接收参数并返回新函数,直至参数齐备才执行,不改变原始逻辑而适配函数式编程;需按语义分层固化参数、用通用curry工具指定arity、结合闭包预置上下文,并自然融入pipe/compose数据流。
-
OffscreenCanvas仅提供Worker中的渲染上下文,不解决TB级数据瓶颈;需手动实现分片传输、流式顶点更新、GPU缓冲复用及ImageBitmap零拷贝输出。
-
图片放大溢出的根本原因是transform:scale()仅改变视觉渲染而不影响文档流,必须同时设置overflow:hidden、display:block和transform-origin三者缺一不可。
-
CSS原生不支持oklab颜色空间插值,transition无法在oklab中计算中间色;必须通过JavaScript手动计算oklab色阶并转为rgb/hsl,再用CSS变量和transition驱动才能实现真丝滑阶梯。
-
用border和outline临时加边框是盒模型嵌套调试最快捷方式:border标content/padding区,outline标margin区,box-shadow可模拟单边描边,分层标记后立即删除。
-
WeakRef不能替代ref/reactive,因其无.value属性、不触发getter/setter、不参与Vue/React依赖追踪,仅作弱引用防内存泄漏;需配合ref使用。
-
ShadowDOM事件默认不穿透边界,外部监听器的event.target被重定向为宿主元素;需用event.composedPath()[0]获取真实目标,或派发bubbles:true且composed:true的自定义事件实现跨边界通信。
-
Vue的Diff是策略性增量比对,非全量O(n²)比对;Patch是diff结果的自然执行,仅作用于判定变更的节点及必要子树,通过双端剪枝、key映射、v-memo实现三层收敛优化。
-
Svelte组件默认样式局部化是通过编译时为CSS添加唯一属性选择器(如svelte-123abc)实现,而非ShadowDOM;:global()仅放行括号内选择器,需避免嵌套与误用,全局样式应统一管理于app.css而非组件内style块。
-
HTML模板更新后页面仍显示旧内容,根本原因是多层缓存未彻底清理:ServiceWorker、CacheStorage、CDN及HTTP强缓存均可能拦截请求;仅Ctrl+F5无效,须按浏览器级→站点级→服务端级顺序清除,并配合URL版本化或构建哈希确保资源更新。
-
ESLint与Prettier分工协作:ESLint检查逻辑错误,Prettier专注格式化;必须安装eslint-config-prettier以禁用ESLint中与其冲突的格式规则,且需置于extends末尾,否则会导致fix结果不可预测。
-
影响LCP的CSS规则包括:阻塞渲染的未内联/大体积CSS、@import串行加载、display:none元素的冗余样式解析;需内联关键样式、避免font-display非swap值、用width/height+aspect-ratio占位防抖动、慎用transform/vw等运行时计算属性。
-
Edge新版(Chromium内核90+)彻底移除Flash,因微软2021年1月停用且Chromium88+禁用NPAPI,设置页404、插件列表无项、注册表废弃;网站需升级HTML5或临时用IE模式。