Title here
Summary here
August 19, 2026 in 编程与软件开发4 minutes
介绍浏览器中WEB-API与Devtools的基础知识
Array、Promise、Map 等(ECMAScript 标准)window)访问的能力集合⚠️ Web API 不是 JS 的一部分,离开浏览器(如 Node.js)大部分不可用。
操作页面内容和结构的基础:
querySelector()、getElementById()、closest()createElement()、appendChild()、remove()、cloneNode()setAttribute()、classList.add/remove/toggle()element.style、getComputedStyle()addEventListener()、Event 对象、事件冒泡/捕获、自定义事件 CustomEvent与浏览器窗口/环境交互:
setTimeout/requestAnimationFrame)、对话框href、search、assign()、replace())pushState()、replaceState()、back())→ SPA 路由基础document.cookie 读写(注意编码和安全标志)EventSource)navigator.sendBeacon() 页面卸载时可靠发送分析数据postMessage 通信<canvas> 绘图、图像处理getUserMedia)| API | 容量 | 特点 |
|---|---|---|
| localStorage | ~5MB | 持久化,同步阻塞 |
| sessionStorage | ~5MB | 会话级,标签页隔离 |
| IndexedDB | 大容量 | 异步、结构化、支持索引和事务 |
| Cache API | 大容量 | Service Worker 专用,按 Request/Response 存储 |
| File System Access API | 用户授权 | 直接读写本地文件系统(现代浏览器) |
mark()/measure())crypto.subtle)浏览器开发者工具(DevTools)是前端开发、调试和性能优化的核心生产力工具。
不只是“看 HTML”,更是实时修改 + 问题诊断的核心。
$0 引用最近选中的节点:hover / :active / :focus / :visited(调试悬停效果必备)margin 快速定位::before) 无法直接在 DOM 树选中,需在 Styles 面板底部 “::before” 区域操作它是交互式 REPL + 诊断中心 + 快捷工具集。
| 命令 | 用途 |
|---|---|
console.table(arr) |
表格化展示数组/对象 |
console.time('label') / console.timeEnd('label') |
高精度计时 |
console.group() / console.groupEnd() |
分组折叠日志 |
console.assert(cond, msg) |
条件断言失败才输出 |
console.trace() |
打印调用栈 |
$0, $1, $2...$4 |
引用最近 5 次在 Elements 中选中的节点 |
$$('.selector') |
等价于 document.querySelectorAll,返回真数组 |
copy(obj) |
将对象序列化后复制到剪贴板 |
monitorEvents($0, 'click') |
监控指定元素的事件触发 |
getEventListeners($0) |
获取元素绑定的所有监听器详情 |
// 过滤特定类型的日志
// Console 顶部 Filter 框输入: -context:worker level:error
// 保存运行时数据到本地
copy({ users: await fetch('/api/users').then(r => r.json()) });
// 实时监控函数调用
monitor(myFunction); // 每次调用自动打印参数
unmonitor(myFunction); // 停止监控
console.log 对对象是惰性求值!展开时才读取当前值,可能导致调试误导 → 用 console.log(JSON.parse(JSON.stringify(obj))) 或 structuredClone 快照排查接口问题、优化加载性能的第一现场。
比
console.log高效 10 倍的精准调试方式。
| 类型 | 设置方式 | 适用场景 |
|---|---|---|
| Line Breakpoint | 点击行号 | 常规逻辑调试 |
| Conditional | 右键行号 → Add conditional | 循环中特定条件触发 |
| Logpoint | 右键行号 → Add logpoint | 不中断执行,只打印表达式 |
| DOM Breakpoint | Elements 右键 → Break on | 节点被修改/删除/子树变更时暂停 |
| Event Listener Breakpoint | 右侧面板勾选事件类型 | 点击/输入等事件触发时暂停 |
| XHR/Fetch Breakpoint | 右侧面板添加 URL 片段 | 匹配请求发出时暂停 |
| Exception Breakpoint | 右上角暂停图标 | 捕获未处理异常 |
定位卡顿、掉帧、内存问题的科学依据。
offsetHeight)requestIdleCallback、Web Workertransform/opacity 动画管理客户端持久化数据的控制中心。
| 快捷键 | 功能 |
|---|---|
Ctrl+Shift+I / F12 |
打开/关闭 DevTools |
Ctrl+Shift+C |
元素选择模式 |
Ctrl+Shift+J |
直接打开 Console |
Ctrl+Shift+M |
设备模拟模式 |
Ctrl+P |
Sources 内快速打开文件 |
Ctrl+Shift+F |
全局搜索(跨所有源文件) |
Ctrl+O |
跳转到符号(函数/类名) |
Esc |
切换底部抽屉(Console/Network/Rendering 等) |