-
ServiceWorker是运行在浏览器后台的事件驱动型脚本,支持离线缓存、网络请求拦截与推送通知。需HTTPS注册,生命周期为注册→安装→激活→等待→控制页面,无法访问DOM,依赖fetch/cacheAPI实现预缓存与运行时缓存策略。
-
直接调用window.print()可唤起浏览器打印对话框,需用语义化button绑定事件而非a标签;隐藏非内容元素须依赖@mediaprintCSS(display:none!important);iframe方案可隔离打印区域,需确保加载完成后再调用print()。
-
JavaScript单元测试应聚焦纯逻辑、边界条件和错误路径,首选Jest(开箱即用)或Vitest(Vite生态轻量替代),其次可选Jasmine/Mocha+Chai组合;关键在测得准而非测得多。
-
Flex布局垂直居中需设display:flex和align-items:center;头像须定宽高,简介用flex:1;响应式用rem+媒体查询调根字号;多行卡片用min-height或-webkit-line-clamp截断;IE11需加-ms-flex前缀并避免align-content。
-
Sticky定位触发偏移本质是top值未相对于滚动容器内容区顶部正确设置;它依赖最近有滚动行为的祖先容器,top为0表示元素顶部与容器顶部对齐时吸附,正负值可调节吸附时机,需补偿fixed头部高度并避免用margin或transform干扰定位逻辑。
-
CSS引入失败需四步排查:路径是否正确(优先绝对路径)、Network中状态码与Content-Type是否为200/text/css、link是否在head中且未被JS移除、选择器是否匹配或被覆盖。
-
用:active伪类配合@keyframes和filter:brightness()实现按钮点击闪亮效果,推荐亮度1.6、时长250ms、ease-out缓动;快速连点宜改用JS控制class防错乱,IE可降级box-shadow模拟。
-
本文介绍如何使用JavaScript的match()方法配合正则表达式,精准提取分隔符(如@、#、-、+等)前后连续的数字,并支持任意长度数字和多种分隔符场景。
-
跨平台JavaScript应用架构需统一技术栈,选型ReactNative、Electron等框架,采用分层设计与模块解耦,抽象通信接口,集成原生能力,实现构建自动化,最大化共用代码,最小化平台差异。
-
圣杯布局不能用auto1frauto实现,因auto列内容过长会挤塌中间1fr;须改用fit-content(200px)1frfit-content(200px),加align-self:start和grid-column:2,并禁用float/absolute。
-
JavaScript高效开发需按场景选用特性:动态属性访问用?.和??防错,高频动态键用Map;闭包与柯里化复用逻辑但需防内存泄漏;异步用Promise.all并发而非盲目await;原型继承比class更轻量;须明确代码所处执行阶段。
-
JavaScript对象是键值对集合,属性访问用点号(合法标识符)或方括号(动态/特殊字符);方法需加()调用,否则仅获函数引用;访问不存在属性返回undefined,安全处理用可选链?.或类型检查。
-
WKWebView中<progress>标签需显式设置宽高、避免-webkit-appearance:none干扰,默认不触发change事件,应通过input事件或postMessage与原生交互,且不支持用户拖拽。
-
动画卡顿应优先检查requestAnimationFrame是否滥用;需节流调用、避免重排属性、仅用transform/opacity、大量元素动画改用canvas/WebGL。
-
flex容器内容横向溢出不换行,需显式设置flex-wrap:wrap,并合理配置子项的min-width、flex-basis与flex-shrink,避免min-width过大或flex-shrink:0导致换行失效。