-
BEM通过将组件层级、元素角色和状态硬编码进类名(如header__logo--dark),使样式作用域一目了然,显著减少排查“类在哪生效”的时间;但需配合stylelint-selector-bem-pattern严格校验,禁用自动修复,并避免与CSSModules混用以保可读性。
-
gap是Grid容器原生控制轨道间距的属性,不参与子项盒模型计算、不触发margin折叠、不导致响应式溢出;而margin在Grid中强行模拟间距会引发边框重叠、首末行错位及小屏横向滚动等问题。
-
z-index失效本质是层叠上下文割裂,模态框与固定头部不在同一上下文内比较;需检查并确保二者同属一个上下文或各自独立且z-index合理。
-
根本原因是响应式系统未就绪时访问computed,导致undefined报错;常见于setup早期、微任务中过早读取;应延迟至onMounted、用ref缓存或封装安全读取函数。
-
JavaScript事件循环确保异步任务有序执行:同步任务先执行,随后清空微任务队列(如Promise回调),再执行一个宏任务(如setTimeout),如此循环。微任务优先级高于宏任务,保证高优先级回调快速响应。常见宏任务包括script、setTimeout、setInterval、I/O操作;微任务有Promise.then、MutationObserver、queueMicrotask等。例如,console.log('Start')和console.log('End')作为同步任务最先输出;接着
-
Object.defineProperty()可精细控制属性的enumerable和configurable:enumerable为false时属性不可遍历但可读写;configurable为false时不可删除或重定义特性;二者组合可实现类私有属性。
-
JavaScript生成器是能暂停和恢复执行的特殊函数,通过yield交出控制权并返回值;用function*声明,调用后返回可迭代的生成器对象,其next()方法逐步执行并返回{value,done}。
-
纯CSS油量仪表盘用半圆容器+conic/linear-gradient填充,transform-origin:bottomcenter配合rotate((fuel/100)*180-90)实现0%→-90°、100%→90°映射,SVG绘制刻度确保高DPI适配,transition优化突变动画。
-
低代码平台不直接暴露flatMapAPI,但在底层逻辑编排或自定义脚本中可用flatMap高效实现多数据源动态合并与拓扑排序:通过flatMap展开、过滤、映射异构数据源为带优先级的扁平执行单元,并驱动变量聚合节点分组配置,同时需遵守平台约束如兜底值置尾、类型统一和分组数限制。
-
虚拟列表是解决长列表渲染性能问题的方案,通过仅渲染可视区域元素、用transform定位及固定高度容器来避免DOM过载,不可混用非虚拟节点,宜配合游标分页而非传统分页。
-
rgba()支持透明通道且仅影响当前颜色属性,#hex不支持透明(除新标准8位扩展但兼容性差);rgba()第四参数为0–1小数,需先转RGB再加alpha;IE8及以下需fallback写法;透明背景需同步保障文字对比度。
-
BEM要求Block必须是独立、可复用、带业务语义的功能单元(如user-profile),禁用泛标签名(header)或视觉描述名(top-banner);Element命名不回溯父级(user-profile__name,非user-profile__user-profile-name);Modifier须语义化(--primary,非--white)。
-
CDN选型应优先确保源站Cache-Control可自定义,否则CDN无法缓存;静态资源需显式设置public/max-age/immutable;URL哈希优于查询参数;需验证边缘节点实际覆盖;HTTP/2推送已废弃,改用preload或preconnect。
-
正确做法是用requestAnimationFrame更新transform,配合pointer-events:none和touchmove兼容处理。需声明lastX/lastY存坐标,用transform:translate3d()触发GPU加速,禁用background-position,移动端须加{passive:false}并用touches[0],且设touch-action:none。
-
Array.from()的mapFn参数能降低内存占用,因为它按需计算每个索引的值并直接填入目标数组,仅分配最终结果数组的内存,避免了先创建占位数组再映射的两步开销。