-
transition:all不会过渡所有属性,仅对支持CSS动画的属性(如color、transform)生效,对display、height:auto等无效,且易引发性能问题和行为不一致。
-
Promise.all存在三大缺陷:一失败全中断、无并发数限制、不可取消;应依场景选用Promise.allSettled、p-limit等并发控制方案。
-
grid-auto-flow控制网格中未定位元素的排列方式,默认按行填充,可设为column或dense模式实现纵向或紧凑布局,配合隐式轨道定义实现灵活自适应效果。
-
递归函数是函数调用自身,必须有明确终止条件(basecase),否则导致栈溢出;核心结构为basecase加recursivecase,常见错误包括缺return、basecase条件错误、问题规模未缩小。
-
可以,background-image支持多背景语法,用逗号分隔图片和渐变,顺序决定堆叠(前上后下),需配合background-size、background-repeat等控制显示效果。
-
justify-items用于Grid布局中控制项目在行内轴(水平)的对齐,align-items在Grid和Flexbox中均适用,控制块轴(垂直)对齐,Flexbox中主轴对齐由justify-content实现,默认值均为stretch。
-
首先在基线状态拍下堆快照,执行操作后再拍一张并对比,筛选“Detached”对象,通过引用链定位未释放的DOM元素,找到代码中未清理的引用并修复,从而解决内存泄漏问题。
-
memoize是一种手动实现的缓存策略,用Map存储输入与输出,提升纯函数(尤其递归)性能;手写需支持可序列化参数、保持this上下文,JSON.stringify有局限,Map可避免键冲突。
-
sessionStorage可存XML字符串,但需先用XMLSerializer序列化、再用DOMParser解析;其数据仅限当前标签页会话,刷新保留,关闭标签页即丢失,且单条容量通常限5–10MB。
-
JavaScript原型链是对象继承的基础,通过__proto__链接原型实现属性查找。构造函数的prototype被实例的[[Prototype]]引用,形成链式结构。使用Object.create()可实现安全继承,避免副作用;ES6的class和extends为语法糖,底层仍基于原型链。正确设置constructor指向并注意属性屏蔽,才能确保继承行为正常。掌握这些机制是理解JS面向对象的核心。
-
文章页用flex-column布局实现语义化分层:article设flex-column居中,header内元信息横向对齐,图文组合自适应比例,标签与评论区独立flex容器并响应式优化。
-
函数柯里化是将多参数函数转化为单参数函数链的技术,通过闭包和递归实现参数累积,直到满足原函数参数数量才执行,提升代码复用与灵活性,适用于事件处理、工具函数构建等场景,但需注意this指向、fn.length局限性及性能开销。
-
TailwindCSS通过移动优先的响应式断点类实现移动端适配,提供sm、md、lg、xl、2xl五种默认断点,支持自定义配置;使用断点前缀如md:、lg:可针对不同屏幕尺寸调整样式,例如字体、布局、间距及元素显示,推荐先为小屏设置基础样式再逐层优化大屏体验,结合类名组合实现跨设备一致的响应式设计。
-
CSS选择器需按匹配逻辑分层理解,核心是明确“选中范围”与“优先级来源”;应结合HTML结构选择元素、类、ID、属性、伪类等选择器,并区分后代、子代、兄弟关系。
-
直接上手Flexbox是提升布局能力最高效的方式,它规则清晰、兼容性好,适合新手建立“容器-项目”思维;掌握容器属性(如justify-content、align-items)和5个典型场景即可覆盖80%常用布局。