-
JavaScript正则支持反向引用,用\1、\2等引用前面捕获组内容,ES2018起支持\k<name>命名引用,适用于重复词、对称结构等场景,但有空匹配、字符类禁用等限制。
-
动态导入是使用import()语法异步加载模块的技术,返回Promise,支持按需加载。它不同于静态import,可在运行时条件加载,如用户点击按钮时才加载模块,实现懒加载。在单页应用中,结合React.lazy和Suspense,可根据路由分割代码,访问对应路由时才加载组件,减少首屏体积。此外,还可按功能分割,如仅在需要时加载大型库(如xlsx、moment等)。构建工具如Webpack、Vite等原生支持动态导入,自动拆分代码块,可通过webpackChunkName注释优化chunk命名,提升可维护
-
BOM核心包括window、location、history等对象:window为全局对象,控制窗口操作;location管理URL跳转与刷新;history实现页面导航;navigator和screen提供环境信息。掌握其用法可有效控制浏览器行为,注意replace不可后退、close仅限脚本打开窗口。
-
fieldset必须配对legend使用,legend是其必要标题且须为首个子元素;禁用整个分组应使用fieldset的disabled属性;嵌套需有真实逻辑,避免冗余;legend内容须具体描述控件用途。
-
Provide/Inject是Vue跨组件共享逻辑的轻量机制,通过按模块provide(如Symbol('user'))和inject实现解耦;需用readonly保障安全性,适用于中低频状态传递,非全局状态管理替代方案。
-
768px和1024px断点不合理,因其源自iPad初代物理分辨率而非视口宽度;应基于内容可读性设断点,如320px重排、480px启两列、64rem适配缩放,并优先用clamp()减少依赖。
-
关键帧百分比支持小数且语法合法,但问题在于插值逻辑与人眼预期错位、旧版浏览器四舍五入、关键帧过密被裁剪;需用两段式写法(如60%,79.999%{opacity:1;})明确静态区间。
-
浮动元素脱离文档流,导致父容器塌陷及定位基准错乱;绝对定位依赖已定位祖先,若其为浮动则尺寸不稳定;现代布局应优先使用Flexbox或Grid替代浮动。
-
Proxy是一个可编程的代理层,通过拦截对目标对象的所有访问行为(如读、写、枚举、构造等)实现逻辑注入,不修改原对象也不复制属性,但必须用Proxy实例替代原对象使用。
-
移动端页脚占空间过多主因是固定高度、过大padding及未响应式布局;应通过媒体查询减小padding(0.5–1rem)、调低字体与行高、改用flex竖排、隐藏次要内容、移除height/min-height并用flex贴底。
-
生成器函数的核心区别在于使用yield实现可暂停、可恢复的执行,返回生成器对象而非直接返回结果,支持惰性求值和内存高效的数据处理。
-
flex:1是flex-grow、flex-shrink和flex-basis的简写,等价于flex:110%,使元素放弃自身内容宽度、按比例抢占父容器剩余空间并允许收缩。
-
盒模型直接影响flex项目尺寸与空间分配,采用box-sizing:border-box可使宽度包含padding和border,避免布局溢出;flex-basis、伸缩计算均基于content+padding+border的总尺寸,padding和border占用主轴空间可能引发换行或对齐偏差,建议用gap控制间距、统一box-sizing并合理处理内边距。
-
position:sticky在导航栏上“没反应”最常见的原因是父容器设置了overflow:hidden/auto/scroll中断定位上下文,且未显式设置top值;fixed导航栏需用padding-top补偿占位,避免内容遮挡。
-
preload="auto"常失效因浏览器实现差异及服务端缺失Accept-Ranges响应头;需结合服务端range支持、合理编码参数(如GOP≤10秒)与客户端策略(如preload="metadata"+load()+play())协同优化。