网站首页 > 技术文章 正文
大家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。
控制台实用程序(Console Utilities API) API 包含一系列用于执行常见任务的便捷函数,包括:选择和检查 DOM 元素、查询对象、以可读格式显示数据、停止和启动探查器、监视 DOM 事件和函数调用等等。
inspect(object/function)
spect(object/function) 打开并在相应的面板中选择指定的元素或对象,比如:DOM 元素的“元素”面板或 JavaScript 堆对象的“配置文件”面板。
以下示例在“元素”面板中打开 document.body:
inspect(document.body);
当传递一个函数进行检查时,该函数会在“Source”面板中打开文档供检查。
getEventListeners(object)
getEventListeners(object) 返回在指定对象上注册的事件侦听器。 返回值是一个对象,其中包含每个注册事件类型(例如单击或按键)的数组。 每个数组的成员都是描述为每种类型注册的侦听器的对象。 例如,以下列出了在文档对象上注册的所有事件侦听器:
getEventListeners(document);
如果在指定对象上注册了多个侦听器,则该数组包含每个侦听器的所有成员。在以下示例中,在document元素上注册了两个用于单击事件的事件侦听器:
keys(object)
keys(object) 返回一个数组,其中包含属于指定对象的属性名称。要获取相同属性的关联值,请使用 values()。 例如,假设应用程序定义了以下对象:
let player = {
"name": "Parzival",
"number": 1,
"state": "ready",
"easterEggs": 3
};
假设player是在全局命名空间中定义的(为了简单起见),在控制台中键入keys(player)和values(player)会输出以下结果:
monitor(function)
调用指定的函数时,控制台会打印一条消息,指示函数名称以及调用该函数时传递给该函数的参数。
function sum(x, y) {
return x + y;
}
monitor(sum);
monitorEvents(object [, events])
当指定对象上发生指定事件之一时,该事件对象将记录到控制台。 开发者可以指定要监视的单个事件、事件数组或映射到预定义事件集合的通用事件“类型”之一。
下面监视窗口对象上的所有调整大小事件:
monitorEvents(window, "resize");
下面定义了一个数组来监视窗口对象上的“resize”和“scroll”事件:
monitorEvents(window, ["resize", "scroll"])
还可以指定可用的事件“类型”之一,即映射到预定义事件集的字符串。下表列出了可用的事件类型及其关联的事件映射:
例如,以下使用“key”事件类型在“元素”面板中当前选定的输入文本字段上输入所有相应的按键事件。
monitorEvents($0, "key");
以下是在文本字段中输入字符后的示例输出:
profile([name]) and profileEnd([name])
profile() 使用可选名称启动 JavaScript CPU 分析会话, profileEnd() 完成配置文件并在 Performance > Main 轨道中显示结果。
注意:profile() 和 profileEnd() 是 console.profile() 和 console.profileEnd() 的简写。
profile("Profile 1")
profileEnd("Profile 1")
Profile 也可以嵌套,比如下面的示例:
profile('A');
profile('B');
profileEnd('A');
profileEnd('B');
queryObjects(Constructor)
从控制台调用 queryObjects(Constructor) 以返回使用指定构造函数创建的对象数组。 例如:
- queryObjects(Promise):返回 Promise 示例
- queryObjects(HTMLElement):返回HTML元素
- queryObjects(foo):这里 foo 是一个类名,返回通过 new foo() 实例化的所有对象。
queryObjects() 的范围是控制台中当前选择的执行上下文。
table(data [, columns])
通过传入带有可选列标题的数据对象,以表格式打印对象数据。这是console.table() 的快捷方式。 例如,要使用控制台中的表格显示名称列表,可以执行以下操作:
let names = [
{ firstName: "John", lastName: "Smith" },
{ firstName: "Jane", lastName: "Doe" },
];
table(names);
undebug(function)
undebug(function) 停止指定函数的调试,以便在调用该函数时不再调用调试器。这与 debug(fn) 配合使用。
undebug(getData);
unmonitor(function)
unmonitor(function) 停止对指定函数的监视。这与监视器(fn)配合使用。
unmonitor(getData);
unmonitorEvents(object [, events])
unmonitorEvents(object[, events]) 停止监视指定对象和事件的事件。例如,以下命令停止窗口对象上的所有事件监视:
unmonitorEvents(window);
开发者还可以有选择地停止监视对象上的特定事件。 例如,以下代码开始监视当前选定元素上的所有鼠标事件,然后停止监视“mousemove”事件(可能是为了减少控制台输出中的噪音):
monitorEvents($0, "mouse");
unmonitorEvents($0, "mousemove");
values(object)
value(object) 返回一个数组,其中包含属于指定对象的所有属性的值。
let player = {
"name": "Parzival",
"number": 1,
"state": "ready",
"easterEggs": 3
};
values(player);
参考资料
https://developer.chrome.com/docs/devtools/console/utilities/#dir-function
https://developer.chrome.com/docs/devtools/console/utilities/#dir-function
- 上一篇: 你还不会移动端真机调试?
- 下一篇: 前端奇技淫巧之js调试
猜你喜欢
- 2024-11-19 记某次常规js前端逆向
- 2024-11-19 前端代码安全与混淆
- 2024-11-19 前端抓包神器--whistle
- 2024-11-19 使用chrome调试工具解决问题(六)
- 2024-11-19 使用chrome调试工具解决问题(七)
- 2024-11-19 使用chrome调试工具解决问题(五)
- 2024-11-19 使用chrome调试工具解决问题(四)
- 2024-11-19 使用chrome调试工具解决问题(三)
- 2024-11-19 楼宇自控系统设备的安装与调试
- 2024-11-19 使用chrome调试工具解决问题(一)
你 发表评论:
欢迎- 最近发表
-
- 前端流行框架Vue3教程:13. 组件传递数据_Props
- 前端必看!10 个 Vue3 救命技巧,解决你 90% 的开发难题?
- JAVA和JavaScript到底是什么关系?是亲戚吗?
- Java和js有什么区别?(java和javascript的区别和联系)
- 东方标准|Web和Java的区别,如何选择这两个专业
- 前端面试题-JS 中如何实现大对象深度对比
- 360前端一面~面试题解析(360前端笔试)
- 加班秃头别慌!1 道 Vue 面试题,快速解锁大厂 offer 通关密码
- 焦虑深夜刷题!5 道高频 React 面试题,吃透 offer 稳了
- 2025Web前端面试题大全(整理版)面试题附答案详解,最全面详细
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)