-
findLast更适合找“最后一个生效项”,因其从末尾短路查找、不创建中间数组,而filter+pop会遍历全部元素并分配内存;业务权重常由数组顺序体现,越靠后优先级越高。
-
图片在CSSGrid中排列不整齐,主因是尺寸、容器约束或对齐方式未协调:需设width:100%;height:auto;、display:block;,合理使用justify-items/align-items,并配合minmax()、object-fit和gap优化。
-
target="_blank"新标签页打不开主因是浏览器安全策略:Chrome88+/Firefox79+对未配rel="noopener"的链接主动降级为当前页跳转,尤其跨域或iframe场景;需同时添加rel="noopener"或rel="noreferrer"。
-
FP、FCP、LCP分别表示页面首次像素绘制、首个内容元素绘制、最大内容元素绘制的时间点;FP仅需样式计算与光栅化,FCP需文本/图片等有意义内容,LCP关注视口内最大内容区块,三者应满足FP≤FCP≤LCP。
-
<video>被<footer>盖住是因父容器浮动未清除导致高度塌陷。应给浮动父容器触发BFC(overflow:hidden或display:flow-root)或伪元素清除,同时设video{display:block}消除基线间隙。
-
动态导入结合代码分割可显著提升前端性能。通过import()语法实现按需加载,Webpack等工具将其拆分为独立chunk,避免静态导入导致的主bundle过大。常见应用于路由级分割,如React中使用React.lazy配合Suspense实现组件懒加载,支持预加载和魔法注释优化体验,合理配置chunk命名与拆分策略能有效减少首屏加载时间。
-
border-radius动画失效主因是起止值类型不一致或不可插值,须统一用数值单位且四角写法匹配;应避免auto等非数值值,优选class切换而非JS直改,并注意Safari兼容性问题。
-
Vue.js自定义指令通过钩子函数联动DOM生命周期,接收el、binding、vnode和oldVnode参数;Vue3用app.directive()全局注册,Vue2用Vue.directive();常用钩子包括mounted(最常用)、updated(避免修改响应式数据)、beforeUnmount(清理资源)等。
-
根本原因是html和body默认有margin且height不足,必须设height:100%和margin:0,并确保viewport正确设置,否则background-size:cover无法实现全屏铺满。
-
答案:通过定义包含isLoaded、isLoading和hasChildren属性的TreeNode类,结合异步loadChildren方法实现延迟加载,仅在节点展开时按需加载子节点,提升性能与用户体验。
-
text-shadow属性通过添加阴影提升文字可读性与设计感,基本语法为text-shadow:h-offsetv-offsetblur-radiuscolor;水平与垂直偏移控制位置,模糊半径影响柔和度,颜色可选;浅色文字配深色阴影如text-shadow:1px1px2px#000增强对比,深色文字用浅色外光如text-shadow:-1px-1px1px#fff提升清晰度;使用rgba或hsla控制透明度使效果更自然;可创造发光文字如text-shadow:0010px#fff,0020px#ff0
-
Feature-Policy是HTML5引入的安全机制,仅通过HTTP响应头或iframe的allow属性设置,HTML4完全不支持;2023年起被Permissions-Policy取代,但语法兼容,旧版浏览器仍支持Feature-Policy。
-
input类型由type属性决定而非文件名;截至2026年,主流浏览器稳定支持22种标准type值,datetime已废弃、data为date拼写错误;file过滤需用accept指定MIME或扩展名,multiple须显式声明;移动端键盘适配依赖正确type值,拼写错误会导致降级为text。
-
应使用 插入真正的不可折叠空格,它是Unicode字符\u00A0,能防止折行且浏览器兼容性最佳;其他空格实体宽度不稳定或支持差,仅在需语义化空格且禁换行时使用。
-
模板字符串用反引号`包裹,因为只有反引号才能触发模板字符串解析机制,支持${...}插值、多行保留及表达式求值;单双引号仅创建普通字符串,不支持这些特性。