-
Map.prototype.set()返回undefined,故原生不支持链式调用;需继承Map并重写set等方法使其返回this,再扩展状态机语义如transition、exec,结合WeakMap可实现实例级隔离的状态映射。
-
直接用trimStart()无法可靠清理粘贴文本的混合缩进,需先归一化换行、清除零宽字符,再提取首行非空行缩进前缀并逐行移除。
-
SourceMap仅做位置映射,不支持脱敏;真正需控制的是文件路径、源码内嵌和上报字段三处暴露面,且须在构建、部署及上报环节分别配置。
-
DartSass是当前唯一被官方activelymaintained的Sass实现,RubySass、LibSass和NodeSass均已停更;它由原作者团队开发,独占支持:has()、color-mix()、@use/@forward等新特性,且通过CSSSpecTestSuite验证兼容性。
-
gap属性在Safari≤14.1、iOSSafari≤14.5及IE中完全不生效,被解析器直接忽略;可用:not(:last-child)配合单向margin模拟,但需注意文本节点、flex-wrap及百分比单位等边界问题。
-
闭包实现延迟计算可提升首屏性能。将非关键逻辑(如日志配置、缓存预热)封装为闭包,按需触发执行,避免阻塞首屏渲染与交互,从而优化TTI和LCP指标。
-
CSS动画顺序执行核心是用animation-delay控制启动时机,配合forwards保持终态,通过nth-child或CSS变量动态计算延迟值,优先使用transform/opacity等高性能属性。
-
能,但仅对正在运行的动画生效;已结束或未触发的动画无效,且不支持过渡、不触发事件,需用element.style.animationPlayState精准控制。
-
“不自然”源于缓动函数、起止值或触发时机未对齐;应统一使用cubic-bezier(0.25,0.46,0.45,0.94),scale起始设0.9–0.95、终点为1、中段可微弹至1.02,opacity起点禁用visibility:hidden,需配合pointer-events:none,并添加will-change:opacity,transform提升GPU渲染。
-
本文介绍一种高效、非递归但逻辑等价于递归的算法,将扁平的节点数组按parent-id关系构建成嵌套的树形结构,适用于文件系统、菜单、组织架构等场景。
-
动态import()不能直接加载HTML文件,仅支持JavaScript模块;需用fetch()加载HTML片段并注入,或通过构建工具(如Vite?raw)转为字符串,但非浏览器原生能力。
-
Proxy实现响应式核心是通过get/set拦截建立依赖关系:get中用track()收集当前activeeffect到WeakMap管理的依赖集,set中用trigger()触发对应key的所有副作用;需递归代理、特殊处理数组、配合effect包装函数自动注册与清理依赖。
-
按钮hover闪一下才变色是因为未在默认状态声明transition,且起始值不明确(如未设background-color或用transparent);应始终在非:hover状态写transition,并避免使用不可插值属性或display等不支持过渡的属性。
-
根本原因是服务端未在Content-Type响应头中声明charset=utf-8,导致浏览器按ISO-8859-1解析UTF-8编码的中文;Node.js需显式设置text/event-stream;charset=utf-8,PHP须避免BOM和输出缓冲干扰,Nginx需强制补全charset。
-
答案:CSS中通过white-space、overflow-wrap和word-break属性控制文本换行与空白处理。white-space决定空白符和换行符的处理方式,如normal合并空白并换行,nowrap不换行,pre保留格式,pre-wrap保留格式且换行,pre-line合并空格但保留换行;overflow-wrap在长单词溢出时被动断行,break-word可在单词内断开防止溢出;word-break则主动定义断行规则,break-all允许任意字符间断行,适合中文或URL,keep-all