-
本文详解如何将数组中每个对象的键名提取为新字段(如id),原键对应的值映射为新字段(如value),生成标准化的对象数组,并避免常见push()误用导致的扁平化问题。
-
arr.filter(Boolean)是清理数组假值最简洁有效的方式,它保留所有真值元素(如1、'hello'、true、'0'、[]),剔除false、0、''、null、undefined、NaN。
-
ref可安全获取DOM元素或子组件实例,需模板绑定同名ref属性、脚本中用ref(null)声明,并在onMounted后通过value访问;绑定子组件时须配合defineExpose暴露内容。
-
Symbol.toStringTag是用于自定义对象在Object.prototype.toString()和调试器中显示类名的内置symbol;可直接赋值、在原型或类getter中定义,Proxy可实现动态标签,但不影响instanceof或typeof。
-
要实现60FPSDOM状态切换动画,需用transform/opacity替代布局属性,配合will-change动态启用与requestAnimationFrame同步渲染,并通过DevTools验证图层与帧耗时。
-
mix-blend-mode是元素内容与下方堆叠上下文(如父背景、兄弟元素、video等)的混合,生效关键在于结构:需同级定位+下方有可混合内容,且避免isolation、opacity、filter等隐式创建层叠上下文的属性。
-
col标签仅支持width、background-color、border(左右)等有限样式,text-align在Chrome中有效但其他浏览器可能忽略,color等属性完全无效;必须严格按列数顺序匹配且置于caption后thead前,否则样式失效。
-
for循环遍历数组最高效,现代引擎深度优化后比forEach、for...of快20%–50%,需缓存length并避免函数调用开销;超大数组应分片或用requestIdleCallback防阻塞。
-
省市区三级联动必须用JavaScript实现,不能仅靠HTML嵌套select;需用data-level和data-parent标记层级依赖,否则无法动态清空、加载与过滤。
-
spread-radius设为正值时阴影向外等比例扩张,是几何尺寸的真实增大而非错觉;例如box-shadow:008px4pxrgba(0,0,0,0.1)中阴影宽高各增加8px,造成“胀出感”,需配合blur-radius和低透明度color协同控制以实现自然光影效果。
-
place-items:center没反应最常见原因是父容器未设display:grid;它仅对grid/inline-grid容器有效,且要求子元素为直接子项、未被align-self/justify-self覆盖,也不适用于absolute脱离文档流的元素。
-
WeakMap是实现业务组件状态“硬隔离”托管的最可靠原生方案,其键必须为对象、不可遍历、无size/clear方法,且键失联后自动GC回收,确保状态与实例在语言机制层面强绑定。
-
gap在多列布局中不管用,仅对grid和flex有效;多列布局需用column-gap替代,且其与gap同名不同源,属multi-column模块。
-
Webpack5中use数组从右向左执行,必须写为['style-loader','css-loader']:css-loader先解析@import、url()等语法并转成JS模块,style-loader再将其注入<head>;若顺序颠倒,style-loader将收到未解析的原始CSS字符串,因缺少toString()方法或模块依赖而报错。
-
多重box-shadow拖尾粒子通过同一元素多层偏移、透明度递减、模糊渐变实现,需统一偏移方向、控制模糊值防糊化,禁用drop-shadow因不支持多层独立配置,动画应预设状态并启用GPU加速。