-
PerformanceAPI可精准采集FP、FCP、LCP、FID、TTFB等核心性能指标,通过performance.timing、getEntries()及PerformanceObserver获取页面加载与交互数据,结合mark打点和measure测量自定义逻辑耗时,利用sendBeacon上报关键数据,实现轻量高效的前端性能监控。
-
findLast是ES2023新增的数组方法,从后往前遍历并返回首个满足条件的元素;Chrome108+、Firefox107+、Safari16.4+及Node.js18.12+支持,旧版本需polyfill。
-
HTML页面异常恢复需提前设计降级路径:白屏先查协议与报错;JS卡死用分片、防抖、WebWorker;资源加载失败加onerrorfallback;表单提交失败用localStorage缓存输入。
-
使用CSS的backdrop-filter属性可实现毛玻璃效果,需配合半透明背景和-webkit-backdrop-filter兼容Safari;filter:blur()则用于模糊元素自身背景图,常通过伪元素实现;注意backdrop-filter在旧版浏览器中支持有限。
-
伪元素在:hover时能覆盖父元素背景,关键在于父元素需设position:relative以提供定位上下文,伪元素须设content、position:absolute及足够z-index,且避免父级隐式创建层叠上下文。
-
答案:通过transition和transform结合实现平滑动画。1.transform用于元素移动、旋转、缩放,transition控制变化过程;2.示例中按钮悬停时translateX位移并scale放大,配合0.3s过渡;3.进阶用法如card悬停时translateY上移并rotate旋转,使用cubic-bezier增强动效;4.建议控制过渡时间在0.2s–0.5s,优先对transform和opacity做动画以提升性能,避免布局重排,可配合will-change优化渲染。
-
Object.getOwnPropertyDescriptors可完整获取对象自有属性描述符,实现保留getter/setter的精准克隆;普通方法如Object.assign、展开运算符和JSON序列化均无法复制访问器函数本身。
-
JSON序列化Date对象具有单向性:stringify转为ISO字符串后,parse无法自动还原为Date实例,仅得普通字符串,需手动用newDate()恢复。
-
HTML语义化标签不直接提升SEO权重,但用错会扣分;<main>明确标识核心内容,Google移动优先索引优先提取其内文本与标题层级;<h1>至<h6>构建内容骨架,须层级连续、唯一<h1>;<figure><figcaption>联合提升图文长尾词覆盖;<title>与<h1>需语义一致且动态生成。
-
标准触发顺序是onmousedown→onmouseup→onclick,前提是鼠标操作未被alert阻塞、preventDefault干预或移出元素;该顺序由DOM规范定义,且要求两次事件发生在同一元素、时间间隔较短。
-
复杂JS表达式不破坏语法,但干扰V8静态推断,导致跳过优化、回退解释执行;因嵌套三元、隐式转换、深层可选链、eval/with等使控制流不可预测、类型多态、IC失效、作用域污染。
-
清除浮动是为解决父容器因子元素浮动导致高度塌陷的问题,常用方法包括额外标签法、overflow方法和clearfix技巧。其中推荐使用兼容性良好的clearfix方案:通过::after伪元素创建隐藏块清除浮动,并结合*zoom:1触发IE6/7的hasLayout以实现跨浏览器支持。该方法在不影响布局的前提下有效包裹浮动元素,适用于需兼容旧版浏览器的项目;现代开发中若无需支持IE8以下版本,可简化为display:table形式。随着Flexbox和Grid布局的普及,浮动布局虽逐渐减少,但在图文环绕等
-
transition属性必须写在悬停前的原始状态中,而非:hover里;仅部分属性支持过渡,如color、transform等,display、auto高度等不支持;timing-function不生效常因持续时间过短或变化幅度过小。
-
CSS需通过HTML接入而非直接打开,正确方式是用<link>引入外部文件、<style>嵌入或行内style属性,优先使用外部CSS;路径错误、file://协议限制、缓存及编码问题常导致样式不生效。
-
闭包为任务执行器提供状态隔离与策略绑定能力,是构建逻辑自修复的底层基础;它封装错误响应策略、维持生命周期元数据、注册异步修复任务,并固定可观测性上报契约。