Path2D 适合缓存什么,为什么复杂图形重绘和命中检测会受益?
Path2D 适合缓存什么,为什么复杂图形重绘和命中检测会受益? 本文先给出可直接复述的结论,再用最小代码说明Canvas Path2D 缓存 isPointInPath的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 19 页,收录第 901–950 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
Path2D 适合缓存什么,为什么复杂图形重绘和命中检测会受益? 本文先给出可直接复述的结论,再用最小代码说明Canvas Path2D 缓存 isPointInPath的工作方式、判断依据、项目边界和常见误区。
CanvasRenderingContext2D.save/restore 滥用为什么会让绘制变慢,应如何界定栈边界? 本文先给出可直接复述的结论,再用最小代码说明Canvas save restore 状态栈 性能的工作方式、判断依据、项目边界和常见误区。
为什么跨域图片画进 Canvas 后 getImageData 会抛错,如何合法解除污染? 本文先给出可直接复述的结论,再用最小代码说明Canvas getImageData tainted CORS 跨域的工作方式、判断依据、项目边界和常见误区。
Canvas 文本排版为什么必须依赖 measureText 而不是按字符数估算换行? 本文先给出可直接复述的结论,再用最小代码说明Canvas measureText 文本 换行的工作方式、判断依据、项目边界和常见误区。
导出画布时 HTMLCanvasElement.toBlob 与 toDataURL 的差异和选型依据是什么? 本文先给出可直接复述的结论,再用最小代码说明Canvas toBlob toDataURL 导出 差异的工作方式、判断依据、项目边界和常见误区。
getContext('2d', { willReadFrequently:true }) 应该在什么读回模式下开启,代价是什么? 本文先给出可直接复述的结论,再用最小代码说明Canvas willReadFrequently getContext 2d的工作方式、判断依据、项目边界和常见误区。
navigator.clipboard.readText 读取剪贴板前应如何提示并处理空内容、权限拒绝与格式不符? 本文先给出可直接复述的结论,再用最小代码说明Clipboard readText 权限 拒绝 空内容的工作方式、判断依据、项目边界和常见误区。
navigator.clipboard.writeText 为什么常在非用户激活或权限被拒时失败? 本文先给出可直接复述的结论,再用最小代码说明Clipboard API writeText 权限 用户激活的工作方式、判断依据、项目边界和常见误区。
用 ClipboardItem 写入 text/html 与 text/plain 时,为什么要同时提供纯文本并清洗 HTML? 本文先给出可直接复述的结论,再用最小代码说明ClipboardItem text/html text/plain 剪贴板 清洗的工作方式、判断依据、项目边界和常见误区。
copy/cut/paste 事件里的 event.clipboardData 与 Clipboard API 读写有什么分工和限制? 本文先给出可直接复述的结论,再用最小代码说明copy paste 事件 clipboardData Clipboard API的工作方式、判断依据、项目边界和常见误区。
拖放自定义数据用 setData 自定义 MIME 时,什么信息不该放,跨窗口读取边界是什么? 本文先给出可直接复述的结论,再用最小代码说明DataTransfer setData 自定义 MIME 拖放 安全的工作方式、判断依据、项目边界和常见误区。
DataTransfer.items、files、types 在读取拖入内容时分别解决什么判断? 本文先给出可直接复述的结论,再用最小代码说明DataTransfer items files types 拖入 文件的工作方式、判断依据、项目边界和常见误区。
HTML 拖放中为什么必须阻止 dragover 默认行为,drop 才大概率触发? 本文先给出可直接复述的结论,再用最小代码说明dragover preventDefault drop 拖放的工作方式、判断依据、项目边界和常见误区。
拖放交互里 effectAllowed 与 dropEffect 不一致会造成什么视觉与结果错配? 本文先给出可直接复述的结论,再用最小代码说明effectAllowed dropEffect 拖放 光标的工作方式、判断依据、项目边界和常见误区。
drop 事件拿到 FileList 后,前端应先做哪些尺寸、类型、数量校验再进入解析? 本文先给出可直接复述的结论,再用最小代码说明drop FileList 文件 校验 size type的工作方式、判断依据、项目边界和常见误区。
enumerateDevices 为什么在授权前 label 为空,拿到流后应如何刷新设备列表? 本文先给出可直接复述的结论,再用最小代码说明enumerateDevices label 权限 devicechange的工作方式、判断依据、项目边界和常见误区。
为什么不能信任 File.name 与 File.lastModified 做唯一键或新鲜度判断? 本文先给出可直接复述的结论,再用最小代码说明File name lastModified 可信边界的工作方式、判断依据、项目边界和常见误区。
File 与 Blob 在浏览器中有什么本质区别,什么时候不能只按 Blob 处理? 本文先给出可直接复述的结论,再用最小代码说明File 与 Blob 的区别的工作方式、判断依据、项目边界和常见误区。
FileReader 的 readAsText、readAsArrayBuffer、readAsDataURL 应如何按消费方式选择? 本文先给出可直接复述的结论,再用最小代码说明FileReader readAsArrayBuffer readAsDataURL 选择的工作方式、判断依据、项目边界和常见误区。
视频全屏应该请求 video 元素还是容器元素,iOS 行为差异为什么要单列? 本文先给出可直接复述的结论,再用最小代码说明requestFullscreen video iOS webkitEnterFullscreen的工作方式、判断依据、项目边界和常见误区。
getDisplayMedia 请求屏幕共享时,audio、surfaceSwitching、preferCurrentTab 等约束应怎样向用户解释? 本文先给出可直接复述的结论,再用最小代码说明getDisplayMedia 屏幕共享 audio constraints的工作方式、判断依据、项目边界和常见误区。
getUserMedia 的 ideal/exact/deviceId 约束怎样设计降级,OverconstrainedError 后如何重试? 本文先给出可直接复述的结论,再用最小代码说明getUserMedia 约束降级 OverconstrainedError 重试的工作方式、判断依据、项目边界和常见误区。
<input type=file> 的 accept 属性能否当作安全校验,失败体验应怎样兜底? 本文先给出可直接复述的结论,再用最小代码说明input file accept 属性 校验的工作方式、判断依据、项目边界和常见误区。
在选清晰度前用 MediaCapabilities.decodingInfo 判断什么,不能拿它保证什么? 本文先给出可直接复述的结论,再用最小代码说明MediaCapabilities decodingInfo 解码 能力的工作方式、判断依据、项目边界和常见误区。
HTMLMediaElement 的 readyState、canplay、loadeddata、canplaythrough 应分别用来开门什么交互? 本文先给出可直接复述的结论,再用最小代码说明HTMLMediaElement readyState canplay loadeddata的工作方式、判断依据、项目边界和常见误区。
<video> 的 preload=none/metadata/auto 在移动网络下应如何选择,不能假设什么? 本文先给出可直接复述的结论,再用最小代码说明video preload none metadata auto的工作方式、判断依据、项目边界和常见误区。
拖动 HTMLMediaElement.currentTime 时如何用 buffered 与 seeking/seeked 判断卡顿是否来自未缓冲? 本文先给出可直接复述的结论,再用最小代码说明video 拖动 buffered 判断缓冲卡顿的工作方式、判断依据、项目边界和常见误区。
MediaRecorder 选型时如何校验 MIME 支持,start(timeslice) 对 ondataavailable 有什么影响? 本文先给出可直接复述的结论,再用最小代码说明MediaRecorder isTypeSupported timeslice ondataavailable的工作方式、判断依据、项目边界和常见误区。
MediaRecorder.stop 后为什么不能立刻用已收 Blob,还要等最后一次 dataavailable? 本文先给出可直接复述的结论,再用最小代码说明MediaRecorder stop dataavailable Blob的工作方式、判断依据、项目边界和常见误区。
Media Source Extensions 中向 SourceBuffer appendBuffer 为什么要等待 updateend,乱序追加会怎样? 本文先给出可直接复述的结论,再用最小代码说明MSE SourceBuffer appendBuffer 顺序 updateend的工作方式、判断依据、项目边界和常见误区。
Safari 原生可播 HLS 而其他桌面浏览器常走 MSE 时,播放器封装应如何分流? 本文先给出可直接复述的结论,再用最小代码说明HLS canPlayType MSE 播放器 分流的工作方式、判断依据、项目边界和常见误区。
URL.createObjectURL 创建的地址为什么要 revokeObjectURL,泄漏会怎样表现? 本文先给出可直接复述的结论,再用最小代码说明createObjectURL revokeObjectURL 内存泄漏的工作方式、判断依据、项目边界和常见误区。
OffscreenCanvas 什么时候该转移到 Worker,转移所有权后主线程还能做什么? 本文先给出可直接复述的结论,再用最小代码说明OffscreenCanvas transferControlToOffscreen Worker的工作方式、判断依据、项目边界和常见误区。
Permissions API query 摄像头/麦克风状态时,name 支持与 change 事件边界是什么? 本文先给出可直接复述的结论,再用最小代码说明Permissions API query camera microphone的工作方式、判断依据、项目边界和常见误区。
setDragImage 自定义拖拽预览图时,图像来源和 offset 设置有哪些坑? 本文先给出可直接复述的结论,再用最小代码说明setDragImage offset 拖拽预览的工作方式、判断依据、项目边界和常见误区。
结束摄像头采集时为什么必须 stop 所有 MediaStreamTrack 而不是只移除 video.srcObject? 本文先给出可直接复述的结论,再用最小代码说明MediaStreamTrack stop srcObject 摄像头 指示灯的工作方式、判断依据、项目边界和常见误区。
Web Audio 中 decodeAudioData 得到 AudioBuffer 后,播放采样率与 AudioContext 不一致会怎样? 本文先给出可直接复述的结论,再用最小代码说明Web Audio decodeAudioData AudioBuffer sampleRate的工作方式、判断依据、项目边界和常见误区。
AbortController 取消一个进行中的 fetch 后,Promise 和底层网络连接分别发生什么? 本文先给出可直接复述的结论,再用最小代码说明AbortController abort fetch AbortError 连接中断的工作方式、判断依据、项目边界和常见误区。
一个 AbortController 可以控制多个 fetch 吗,这样做有什么实际用途和注意事项? 本文先给出可直接复述的结论,再用最小代码说明AbortController 多个请求 批量取消 路由切换的工作方式、判断依据、项目边界和常见误区。
一个请求同时受用户手动取消和全局超时控制时,如何用 AbortSignal.any() 合并多个信号? 本文先给出可直接复述的结论,再用最小代码说明AbortSignal.any 合并信号 手动取消 超时的工作方式、判断依据、项目边界和常见误区。
AbortSignal.timeout() 相比手写 setTimeout 加 AbortController 有什么优势(2022 年起主流浏览器支持)? 本文先给出可直接复述的结论,再用最小代码说明AbortSignal.timeout 超时 静态方法的工作方式、判断依据、项目边界和常见误区。
什么样的跨域 fetch 请求会触发 CORS 预检(OPTIONS)请求,如何避免不必要的预检? 本文先给出可直接复述的结论,再用最小代码说明CORS 预检 OPTIONS 触发条件 简单请求的工作方式、判断依据、项目边界和常见误区。
在 fetch 的 catch 中如何区分请求是被 AbortController 取消还是真的网络失败,为什么要区分? 本文先给出可直接复述的结论,再用最小代码说明区分 AbortError 网络错误 catch name的工作方式、判断依据、项目边界和常见误区。
fetch 的 mode 选项 cors、no-cors、same-origin 分别产生什么行为? 本文先给出可直接复述的结论,再用最小代码说明fetch mode no-cors opaque 响应的工作方式、判断依据、项目边界和常见误区。
fetch 默认跨域请求为什么不带 Cookie,credentials 选项各取值有什么区别? 本文先给出可直接复述的结论,再用最小代码说明fetch credentials cookie same-origin include的工作方式、判断依据、项目边界和常见误区。
解释 fetch 为什么对 404、500 不 reject:Promise 只在网络层失败时拒绝,HTTP 错误状态会正常 resolve。给出检查 response.ok 或 status 并手动抛错的标准处理方式与边界。
fetch 调用 response.json() 时报错通常有哪些原因,如何健壮处理? 本文先给出可直接复述的结论,再用最小代码说明response.json 解析失败 空响应的工作方式、判断依据、项目边界和常见误区。
页面即将卸载时 fetch 请求容易中断,keepalive 选项如何解决这类上报丢失问题? 本文先给出可直接复述的结论,再用最小代码说明fetch keepalive 页面卸载 埋点上报的工作方式、判断依据、项目边界和常见误区。
fetch 发送 POST 请求时,FormData 与 JSON body 在 Content-Type 和处理上有什么区别? 本文先给出可直接复述的结论,再用最小代码说明fetch POST FormData JSON Content-Type boundary的工作方式、判断依据、项目边界和常见误区。
fetch 遇到 3xx 重定向时 redirect 选项的 follow、error、manual 各有什么效果? 本文先给出可直接复述的结论,再用最小代码说明fetch redirect manual opaqueredirect的工作方式、判断依据、项目边界和常见误区。