-
动态注入CSS的核心方法是appendChild而非insertAdjacentHTML;前者通过document.createElement('style')创建元素更可控,支持后续操作与统一管理,后者仅适合一次性内联样式调试。
-
本文介绍如何在用户选择某个数值后,自动移除超出剩余可用配额的<option>元素,实现“选N个,则后续仅剩(max−N)个可选”的逻辑,适用于资源预约、库存分配等场景。
-
overflow属性通过控制内容溢出行为提升布局与体验,其核心值包括visible、hidden、scroll和auto,可分别应对不同场景;auto最常用,能智能显示滚动条,而scroll则确保布局稳定性和可滚动提示;结合max-height、Flexbox及自定义滚动条样式,可在响应式设计中实现展开收起、表格滚动等高级功能,但需避免滥用hidden导致内容不可访问或布局问题。
-
::first-letter生效需满足块级容器、首字符未被内联标签包裹、无前置空白等严格条件;失效主因是HTML结构或CSS环境不合规,而非选择器错误。
-
关键在于正则是否被缓存复用且带g标志并被闭包长期持有,导致lastIndex持续变化干扰匹配;典型表现为对同一字符串连续test结果交替,或lastIndex非零时从中间匹配。
-
HTML5中实线边框必须用CSS显式声明border-style:solid,如border:1pxsolid#ccc;锯齿源于亚像素渲染,需用整数宽度、translateZ(0)、font-smoothing等协同优化。
-
直接对element.outerHTML赋值会销毁原节点并重建,导致Vue/React组件实例、响应式绑定、事件监听器及状态全部丢失;应改用框架原生更新机制(如修改reactive数据或setState),必要时通过key变更触发可控重建。
-
Object.seal()能锁定props结构(禁止增删属性、修改可配置性),但允许修改已有属性值;它并非“无影响”,而是有明确行为边界,适用于需结构只读但值可变的场景。
-
必须基于AST用@babel/parser+@babel/traverse安全提取可混淆标识符:仅处理声明绑定(var/let/const/param),跳过属性名、导入绑定和白名单字段,按作用域隔离生成混淆名,并用replaceWith更新引用。
-
Performance面板录制可实时观察JS堆与DOM节点变化,关键看GC后是否回落;Memory面板用分配时间线定位异步代码分配源头;TaskManager辅助验证跨标签页内存增长;需重点关注未取消Promise、未移除事件监听器、未清除定时器、未节流流式数据四类高危模式。
-
分块模块化检索的核心是“分块设计+静态导入+运行时索引”:按ID区间或哈希前缀预切分数据为ES模块,通过动态import()按需加载,配合索引表快速定位目标块,再用Set/Map实现O(1)查询。
-
<link>必须放在<head>中且含rel="stylesheet"和正确href路径,否则样式不生效;浏览器解析顺序导致FOUC或IE忽略,路径以HTML所在目录为基准,rel属性拼写错误将静默失效。
-
Object.getPrototypeOf是遍历原型链的关键工具,用于构建原型链快照并检测污染;原型链污染需同时满足可控输入、深度合并逻辑、未过滤敏感键名三个条件。
-
Canvas绘图可通过自定义渲染器实现Vue响应式与组件化——核心是将绘制命令转为可diff/patch的VNode,在Canvas2Dcontext上执行;需重写hostCreateElement、hostPatchProp等钩子,并抽象hostContext以支持跨端复用。
-
WebShareAPI仅在HTTPS及特定移动端浏览器中可用,PC端和Safari不支持;微信分享须走JS-SDK签名流程;clipboard复制需用户手势触发;分享图依赖服务端注入的og:image等静态meta标签。