-
必须同时设置body{margin:0;min-height:100vh;background-color:#101a2c}和html{height:100%},否则背景仅覆盖内容区域;canvas需设为block并宽高100vw/vh,避免background简写清空颜色;深色模式应通过data-theme+JS控制而非仅依赖prefers-color-scheme。
-
newService()是解耦的第一道坎,因其将调用方与具体实现硬编码绑定,导致替换、拦截或测试时需修改所有构造点;应通过工厂函数统一创建并注入实例,切断隐式耦合。
-
前端生成HTML长图海报本质是CSS精确控制垂直流与导出适配,需禁用滚动、声明容器高度、处理设备像素比、跨域图片及字体加载时机。
-
JavaScript哈希路由是利用URL中#后hash值实现SPA导航的机制,不触发页面刷新,通过监听hashchange事件并解析location.hash来渲染对应视图,兼容IE8+且无需服务端配置,但SEO差、URL不美观。
-
模板编译是将字符串模板转为JavaScript渲染函数的过程,预编译在构建阶段完成该转换,避免运行时解析,提升性能。以{{name}}欢迎你!为例,编译后生成function(data){returndata.name+"欢迎你!";},运行时直接调用函数。预编译优势包括减少运行时开销、加快首次渲染、支持代码压缩和提前报错。主流实现有Handlebars通过命令行工具预编译为轻量runtime依赖,Vue的SFC在构建时用@vue/compiler-dom转为render函数,生产环境无需编译器,Reac
-
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实现三层收敛优化。