-
CSS变量是运行时机制,JS可动态修改;Sass变量在编译阶段被替换,JS无法感知。前者支持主题切换、继承与局部作用域,后者支持复杂计算和逻辑判断,但需编译且无运行时灵活性。
-
Redux是一个可预测的状态管理容器,核心是让状态变化可追踪、可回溯、可测试;它通过唯一Store管理全局状态,用纯Action描述意图,由纯函数Reducer计算新状态,且仅能通过dispatch触发更新。
-
<p>用递归mixin生成0%–100%旋转帧:.gen-rotate-frames(@i:0,@step:10,@max:100)when(@i=<@max){@{i}%{transform:rotate(@i*1deg);}.gen-rotate-frames(@i+@step,@step,@max);},再在外层mixin中调用并包裹@keyframes。</p>
-
摇晃动画必须用@keyframes定义至少3个关键帧实现往复节奏,如0%→25%→50%→75%→100%角度变化,首尾为0deg确保循环自然,幅度宜控在±3deg~±8deg,配合0.4s~0.6s时长和非对称角度增强真实感。
-
HTML代码混淆对防止盗用或爬虫基本无效,真正有效的是服务端控制、访问限频和内容动态化;混淆可被开发者工具一键还原,不改变语义,不影响XPath/CSS定位,且增加解析开销与维护风险。
-
matchAll返回迭代器,须用for...of、展开语法或next()遍历;必须加g标志,禁用y标志;捕获组按索引访问更兼容;非捕获组不占位;未匹配捕获组值为undefined。
-
Array.from()是将伪数组转换为真数组最简洁推荐的方式,能处理arguments、NodeList等伪数组并支持映射操作。
-
闭包能实现观察者模式是因为它提供了私有且持久的变量存储,使得订阅者列表\_subscribers被安全封装在函数作用域内,外部无法直接访问;2.subscribe、unsubscribe和notify方法通过闭包共享\_subscribers数组,实现对观察者的增删查和通知;3.每次调用createEventBus都会创建独立的闭包环境,保证多个实例间互不干扰;4.实际使用中需注意内存泄漏问题,即组件销毁时应主动取消订阅以避免残留回调引用导致无法回收;5.通知顺序依赖订阅顺序,若需优先级控制则需扩展逻辑;
-
遮罩层必须与弹层处于同一层叠上下文,否则z-index无效;常见问题包括弹层父容器触发新上下文、遮罩祖先含opacity<1、iOSfixed失效及框架v-if/v-show不同步。
-
当浮动与固定定位元素遮挡时,需设置固定元素的z-index为1000并确保其position非static;检查浮动父容器是否创建新层叠上下文导致z-index失效;通过overflow:hidden或clearfix清除浮动避免高度塌陷;推荐用Flex/Grid布局替代浮动,使用开发者工具排查渲染层级,确保布局正确。
-
嵌套动画需按层级累加animation-delay:父容器0s,一级子元素0.1s,二级0.2s;推荐CSS变量简化维护;避免:nth-child()因DOM干扰失效,改用类名或:nth-of-type();入场动画仅用transform+opacity并启用will-change;keyframes统一用0%/100%确保精度;注意overflow:hidden裁剪动画。
-
lighten()调节的是HSL模型中的lightness值,非RGB亮度或感知亮度;对深色大幅提亮易导致失饱和、泛色,推荐用scale-color()或mix()替代,并避免在深色主题中直接大幅使用。
-
Set是JavaScript中存储唯一值的内置对象,自动去重且对NaN和+0/-0有特殊处理;支持add、has、delete等操作,可与数组互转实现快速去重,遍历方式包括for...of、forEach及keys/values/entries。
-
应设在wrapper容器上而非body;需配合margin:0auto居中,推荐用max-width:85vw或1440px;字体用clamp(1rem,2.5vw,1.25rem)响应式缩放;背景/边框通过伪元素或box-shadow实现全宽视觉延伸。
-
本文详解为何在fetch+innerHTML动态写入内容后调用print()会得到空字符串,并通过修正Promise链中函数传递方式、避免提前执行、优化DOM操作等手段,确保数据写入完成后再安全读取。