-
CacheAPI只能在ServiceWorker或Worklet线程中使用,页面主线程调用caches.open()会因上下文受限抛出SecurityError或返回undefined;必须通过HTTPS(或localhost)注册ServiceWorker,且所有缓存操作需在install/fetch事件中配合event.waitUntil()和request.clone()等规范写法执行。
-
scroll事件应优先用requestAnimationFrame节流(而非普通节流),因其对齐浏览器刷新节奏、自动暂停后台标签页;resize事件适合防抖,因只需响应最终尺寸;IntersectionObserver可替代手动scroll+getBoundingClientRect实现视口检测。
-
Array.prototype.reverse()直接修改原数组并返回其引用,不创建新数组;需用[...arr].reverse()等方法复制后再反转以避免副作用。
-
JavaScript数组创建有字面量、构造函数、Array.of()和Array.from()四种方式;length属性可写,修改会截断或扩展数组,其值为最大整数索引加1,不等于元素个数。
-
:active常失效因指针事件被拦截、元素无交互语义或移动端延迟;应检查pointer-events、z-index,用button替代div,设touch-action:manipulation,并用JS监听touchstart/touchend模拟按住状态。
-
nomodule属性不是兼容旧浏览器的开关,而是让现代浏览器忽略该脚本;旧浏览器因不识别nomodule而照常执行它。必须成对使用type="module"和nomodule脚本,各自独立、语法分离:module脚本用ES6+特性,nomodule脚本须为ES5、无模块语法且含必要polyfill。
-
浮动导致父容器高度塌陷、文字绕排错乱、定位冲突及IE兼容问题,根本原因是脱离文档流;应优先用BFC(如overflow:hidden或display:flow-root)或伪元素清除浮动,避免滥用。
-
首先定义关键帧动画并命名,再通过animation-name和animation-duration设置名称与时长,即可实现CSS动画。1.使用@keyframes定义动画名称如slideIn;2.用animation-duration设定播放时长如1s;3.将两者应用于元素;4.可简写为animation:slideIn1s。需注意拼写、定义完整及浏览器兼容性。
-
答案:通过JavaScript的FileReader、fetch或文件关联技术可实现TXT文件读取。1.使用input选择文件,FileReader读取内容并显示;2.Windows系统可将HTML页面与.txt关联,但需脚本中转路径;3.服务器上的TXT可用fetch加载,注意同源策略;4.推荐结合拖拽、编码识别功能,或用Electron打包为桌面应用。纯HTML无法直接读取文件,需借助JS实现。
-
浏览器端推荐qrcode.js(Canvas/SVG),Node.js用qrcode库;qrcode-generator适合SVG矢量需求;注意纠错等级与尺寸权衡,避免扫码失败。
-
本文介绍使用localStorage实现HTML动态表格数据的本地持久化存储,确保用户添加的行和字段在页面刷新或重新打开后依然保留,无需后端或Excel文件依赖。
-
JavaScript无原生错误边界,React特有;浏览器用window.onerror、error事件捕获全局错误,unhandledrejection捕获未处理Promise拒绝,try...catch处理同步及await异步错误,Node.js用process.on兜底。
-
可通过loop属性、ended事件监听、setAttribute动态控制或muted+autoplay组合实现HTML5音视频自动循环;loop最简捷,ended事件更可控,动态切换适合交互场景,静音autoplayloop则保障自动播放兼容性。
-
回调地狱是因嵌套过深的回调导致代码难以阅读维护;async/await通过await暂停执行、解出Promise值来扁平化逻辑,但未消灭异步本质,仍需依依赖关系选择串行或并行(如Promise.all),且须注意未await、循环滥用、错误捕获等陷阱。
-
用:last-child清除最后一项的border-bottom最省事可靠,但需确保flex-direction:column且DOM末项即视觉末项;避免用margin/padding混淆留白逻辑,优先用margin-bottom控制间距、padding-bottom配合边框。