-
用dataset属性标记本地修改但未同步的DOM元素,需用JSON.stringify序列化原始值存入data-original,编辑时同步当前值到data-current并比对,配合localStorage存最小patch实现离线冲突识别。
-
Generator自动执行器不解决分布式“分布”问题,但通过线性化、可中断恢复的控制流,封装请求意图并由执行器统一注入服务发现、重试、熔断、traceId透传等横切逻辑。
-
<picture>不切换图片是因为浏览器未匹配任何<source>条件而回退到<img>的src;常见原因包括media语法不完整、srcset缺少type或media、遗漏必需的<img>标签,以及type类型不被支持或服务器Content-Type错误。
-
call和apply都显式指定函数执行时this的值并立即调用;区别仅在传参方式:call用逗号分隔参数,apply用数组传参。
-
组件内存泄漏排查核心是“谁占着不放,就找谁”,重点在资源创建时明确生命周期终点,尤其定时器和全局事件监听;用ChromeMemory面板抓快照比对,查Retainers引用链;定时器须成对出现,全局事件监听要绑定即登记、卸载必移除;还需检查未取消请求、未销毁观察者、动态DOM节点及意外全局变量。
-
text-overflow:ellipsis对面包屑无效,因其需单行块级元素且依赖white-space:nowrap与overflow:hidden;而面包屑由多个行内元素组成,浏览器无法确定省略位置。
-
根本原因是ShadowDOM样式隔离机制阻断外部CSS匹配,即使类名存在且Tailwind已生成对应规则,外部tailwind.css中的全局类(如.p-4)也无法穿透作用域生效;必须手动注入完整编译后的CSS到shadowRoot,且content配置需覆盖模板路径或safelist预声明动态类名。
-
子元素margin撑不开父容器是因外边距折叠,需触发BFC(如display:flow-root);width:100%溢出因box-sizing默认为content-box,应设border-box;absolute定位需父设position:relative;Flex中margin:auto可居中,前提父为flex且未覆盖对齐属性。
-
Array.prototype.sort()默认按字符串Unicode码点排序,数字数组需用(a,b)=>a-b升序或b-a降序;对象数组可按属性用减法或localeCompare排序,多级排序用逻辑或实现优先级。
-
:first-child伪类选择父元素中第一个子元素,且该子元素需匹配指定选择器。例如p:first-child选中作为首个子元素的p标签;若首个子元素为其他类型(如h2),则p:first-child不生效,此时可用p:first-of-type选中首个p类型元素。样式应用需注意子元素实际顺序,:first-child基于位置而非类型,结合:first-of-type更灵活可靠。
-
使用BEM命名、控制特异性、CSS模块化和合理加载顺序可避免样式冲突。通过block__element--modifier命名隔离组件,统一类选择器避免!important,利用CSSModules或Scoped封装作用域,先载入通用样式再组件最后主题,确保团队规范一致,提升维护性与可控性。
-
单选按钮必须用相同name属性分组,value应为简洁标识符,label负责显示文案,checked用于默认选中,且需保障无障碍支持。
-
Bootstrap嵌套列出现空白是因外层.col的padding与内层.row的margin抵消不净,需在嵌套.row上加mx-n3(BS5)或mx-n2(BS4)负边距类解决。
-
首帧延迟需前后端协同测量:前端记录play()到loadeddata的时间差,后端记录RTSP连接建立至首个RTP包发出的时间戳;WebRTC方案实测可压至300–600ms。
-
在Safari中用appearance:none移除checkbox默认样式可行,但必须搭配::before或::after伪元素重绘且显式设置display:block(或inline-block),否则伪元素不渲染——这是Safari独有的坑。