-
autoplay必须与muted配合才生效,controls控制原生控件显示,muted影响初始音量,preload仅为提示,loop在iOS全屏下需playsinline才有效。
-
stroke-dashoffset动画卡顿的主因是路径长度未对齐,需用pathLength强制标准化单位;设pathLength="100"后统一按100计算偏移,禁用getTotalLength(),否则混用会导致节奏错乱。
-
直接循环appendChild会触发多次重排重绘,因每次向已挂载DOM添加节点都可能强制浏览器同步计算样式、布局和绘制;而DocumentFragment在内存中操作不触发渲染,仅一次性插入时执行一次重排重绘。
-
深度克隆是实现Canvas撤销/重做最直接可控的方式,通过每次绘制完成时对整个状态树做不可变深拷贝并压入undo栈;必须深克隆以防历史快照被后续修改污染,推荐用structuredClone()或JSON.parse(JSON.stringify())配合toRaw()剥离Proxy。
-
data-*属性转dataset键名时连字符变驼峰(如user-id→userId),值恒为字符串,须手动类型转换;修改需用setAttribute而非直接赋dataset;事件委托中应通过closest定位带data属性的祖先元素。
-
flex-direction不会因dir="rtl"自动翻转,必须显式设置row-reverse;justify-content:start随方向自动映射,flex-start则始终锚定物理起点;row-reverse仅反转视觉顺序,不影响DOM和可访问性。
-
BOM检测操作系统最常用方法是解析navigator.userAgent字符串。1.使用正则表达式匹配userAgent中的关键字,如"Windows"、"Mac"、"Android"等;2.优先判断更具体的关键词以避免误判,如先判断iPad再判断Mac;3.结合navigator.platform获取平台信息作为辅助;4.利用新兴的navigator.userAgentDataAPI获取结构化数据,兼容性不足时回退userAgent。此外,navigator对象还可提供语言、网络状态、设备内存、地理位置
-
Express是快速构建Web应用和API的Node.js框架,通过路由、中间件实现请求处理,结合项目实战掌握CRUD接口开发并推荐代码分层结构以提升可维护性。
-
不能只用Set实现最近搜索历史,因其无法动态调整顺序;需组合Set(O(1)去重)与数组(维护时序)或Map(内置有序,更简洁)。
-
preventDefault没生效的主因是未在form的submit事件中同步调用:必须监听form元素的submit事件,首行调用event.preventDefault(),避免异步、委托或内联写法错误(如onsubmit中未returnfalse)。
-
使用外部样式表是现代网页开发的最佳实践,通过link标签引入CSS文件可实现样式与HTML结构分离,便于集中管理;修改单个CSS文件即可同步更新全站样式,提升维护效率;团队协作中设计师与开发者可并行工作;HTML结构更简洁,语义化类名增强代码可读性;多个页面共享同一CSS文件,提高复用性并减少冗余;浏览器缓存静态资源,加快加载速度;结合媒体查询统一管理响应式断点,简化多设备适配;支持动态切换主题或无障碍样式,实现渐进增强;整体提升网站可维护性、一致性与扩展能力。
-
fieldset和legend是语义化分组机制,legend必须为fieldset的首个子元素以确保可访问性;fieldset[disabled]递归禁用直属控件并排除提交;CSS重置后需手动补视觉线索。
-
前端监控系统需采集JavaScript错误、资源加载异常、性能指标、接口异常及用户行为。1.通过window.onerror捕获脚本错误,window.onunhandledrejection监听未处理的Promise拒绝。2.利用PerformanceAPI获取FP、FCP、LCP等核心性能数据并在load后上报。3.重写XMLHttpRequest和fetch实现接口请求监控,记录状态码异常。4.使用sendBeacon发送日志,降级使用Image上报,并通过sessionStorage防止重复提交。
-
async/await是JavaScript中简化异步操作的语法糖,使Promise代码更直观;async函数自动返回Promise,await暂停执行直至Promise完成,支持try/catch错误处理,但需注意避免串行等待影响性能。
-
Bootstrap5自定义断点唯一可靠方式是修改Sass变量$grid-breakpoints并同步更新$container-max-widths,通过构建工具重编译;CDN引入或仅改HTML/JS无效,且BootstrapVue需额外配置breakpoints数组。