浏览器自动播放策略下,为什么 muted 常能播而带声音失败,如何检测并降级?
围绕“浏览器自动播放策略下,为什么 muted 常能播而带声音失败,如何检测并降级”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明用户激活/媒体参与度和 play() 拒绝处理。
浏览器 · 异步编程面试题第 1 页,显示第 1–18 题,共找到 18 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“浏览器自动播放策略下,为什么 muted 常能播而带声音失败,如何检测并降级”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明用户激活/媒体参与度和 play() 拒绝处理。
本题解析HTMLCanvasElement导出的两种API机制差异:二进制Blob与Base64字符串、同步与异步、编码质量参数作用范围,以及大图工程选型与边界。
围绕“navigator.clipboard.readText 读取剪贴板前应如何提示并处理空内容、权限拒绝与格式不符”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确异步拒绝分支与隐私提示。
围绕“copy/cut/paste 事件里的 event.clipboardData 与 Clipboard API 读写”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分事件内同步改本次剪贴板与异步权限 API。
围绕“MediaRecorder.stop 后为什么不能立刻用已收 Blob,还要等最后一次 dataavailable”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明异步冲刷尾部数据与 onstop 次序。
围绕“AbortController 取消一个进行中的 fetch 后,Promise 和底层网络连接分别发生什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 Promise 以 AbortError 拒绝、浏览器中止连接停止接收数据。
解释 fetch 为什么对 404、500 不 reject:Promise 只在网络层失败时拒绝,HTTP 错误状态会正常 resolve。给出检查 response.ok 或 status 并手动抛错的标准处理方式与边界。
对比 fetch 与 XMLHttpRequest 的四个实质差异:Promise 化、HTTP 错误不 reject、上传进度支持、取消机制,并给出按上传进度、错误处理、取消需求选型的可操作判断。
围绕“img 标签的 loading=lazy 与 decoding=async 分别推迟什么工作,两者对首屏大图是否都合”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分网络加载延迟与解码移出主线程两件事,并指出首屏关键图不应 lazy 的边界。
围绕“做元素可见性检测时,IntersectionObserver 相比 scroll 事件里调 getBoundingC”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出观测在浏览器合成/空闲侧异步回调、避免主线程每帧强制布局读取,且能跨 iframe 视口判定。
本文深入解析普通、async、defer 三种 script 在下载时机、执行顺序及 DOMContentLoaded 触发上的差异,并通过具体场景和边界条件帮助判断选型。
围绕“Cookie、localStorage 和 IndexedDB 分别适合存储什么类型的数据”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须基于数据大小、同步/异步、结构化程度给出选择决策。
围绕“如何将 IndexedDB 的请求式 API 封装成 Promise 形式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须描述转换 IDBRequest 事件为 resolve/reject 的方法,不实现完整库。
围绕“为什么收到 storage 事件后获取 localStorage 可能不是最新值”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释事件异步引起竞争。
围绕“在 Worker 中抛出的 Promise 拒绝会不会触发全局错误事件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕未处理的 Promise 在 worker 中也触发 unhandledrejection。
围绕“在 Worker 中用 type='module' 加载 ES 模块脚本与经典脚本有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕支持 import/export,且为异步加载。
围绕“dispatchEvent 是同步派发还是异步派发?在监听器中修改 DOM 会立即反映吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明调用 dispatchEvent 后所有监听器立即同步执行,且事件循环可以嵌套。
本文用父子列表事件说明 event.target 与 event.currentTarget 的本质区别,解释事件委托中为何用 target 判断来源,并提醒 currentTarget 在异步回调中失效的边界。阅读后可避免常见误判,正确编写委托代码。