你不知道的 chrome 控制台指令

你不知道的chrome控制台指令


  • 你不知道的chrome控制台指令 - 知乎专栏
  • https://zhuanlan.zhihu.com/p/79703739
  • 通常,我们在chrome控制台中用的最多的是$0,$0是显示当前选择的元素,现在来看看还有其他的你不知道的chrome控制台指令。 _ _ 返回的是上一次表达式的值如图,先执行 2+2,返回4这个值,再执行$_显示上次的4这…
  • 2024-09-15 20:08:44

通常,我们在chrome控制台中用的最多的是$0,$0是显示当前选择的元素,现在来看看还有其他的你不知道的chrome控制台指令。

$_

$_​ 返回的是上一次表达式的值

如图,先执行2+2​,返回4这个值,再执行$_​显示上次的4这个值

再看一个例子,初始值是一个数组,那么第一次的$_​ 返回的值是这个数组,执行以下$_.length​ 返回数组的长度4,再执行$_​ 就变成4了。

$0 - $4

$0$1$2$3$4​ 返回的是最近N次的选择的元素。

最常用的就是$0,返回当前选中的元素

如图,先选中一个元素,$0​ 返回当前这个元素,再选中其他元素,当前$0​ 返回的是新元素,此时$1​ 返回的是上一个元素。

$(selector, [startNode])

其中startNode​都是起始父元素

$(selector)​ 返回的是css选择器查询到的元素的引用, document.querySelector​ 函数的缩写。

如图,返回的是页面中第一个img元素。

右键选中返回的元素还能选择Reveal in Elements Panel​ ,直接跳到Elemtents的面板中元素的位置。

$$(selector, [startNode])

$(selector) 返回的是css选择器查询到的元素的引用,是 document.querySelector All 函数的缩写。

$x(path, [startNode])

$x(path)​ 能使用xpath选择器来返回符合选择器的所有元素

clear()

clear()​ 用于清除历史记录。

copy(object)

copy​可以直接复制字符串表达式。

debug(function)

当指定函数被执行时自动触发source panel的debug功能。

同样可以 undebug(fn)​ 取消debug on

dir(object)

dir(object)​ 列出指定object的所有属性,相当于console.dir(object)

dirxml(object)

dirxml​返回指定对象的xml结构,相当于console.dirxml()

inspect(object/function)

如果是对象,则会跳转到element panel下指定的元素,如果是function则会跳到source 面板对应函数的位置。

下面是参数是document.body的例子

 inspect(document.body);

getEventListeners(object)

返回指定元素所有绑定的事件,其中各类事件都会相对应聚合成对应的数组,比如click,keydown之类。

如图,是绑定在document上所有事件

getEventListeners(document);

keys(object)

返回指定对象的所有key的数组,相当于Object.keys

当然还有对应的values,也相当于Object.values

var player1 = { "name": "Ted", "level": 42 }

monitor(function)

当指定一个函数时,会监听这个函数调用,返回当下这个函数调用时的参数。

也可以用unmonitor(function)解除监听

monitorEvents(object[, events])

当在一个指定元素上指定监听事件的时候,事件触发就会打印在控制台上,可以传单个事件、一堆事件数组,或者一系列事件。

如图,监听window的resize事件

monitorEvents(window, "resize");

下面是监听一组事件

monitorEvents(window, ["resize", "scroll"])

如图所示,你可以指定一种事件类型来匹配预先定义好的事件集合。

如下,监听所有key的事件集合,当所有键盘事件触发的时候都会打印出来。

 monitorEvents($0, "key");

profile([name]) 和 profileEnd([name])

profile()​来启动一个自定名字的cpu统计,profileEnd()​ 来结束这次统计,并在Profile面板显示结果。

这个面板内容可以参考:https://developers.google.com/web/tools/chrome-devtools/rendering-tools/js-execution

开始一次统计

profile("My profile")

在Profile面板中的结果

table(data[, columns])

打印出格式化的表格,可以定制表头,比如打印出显示名字做成的表格:

var names = {
    0: { firstName: "John", lastName: "Smith" },
    1: { firstName: "Jane", lastName: "Doe" }
};
table(names);

是console.table的简写。

其他

如果页面中有元素使用了id,那可以直接使用这个id作为控制台里的变量

多彩的输出

console.log('%cred', 'color:red');

参考文档:

https://developers.google.com/web/tools/chrome-devtools/console/utilitiesdevelopers.google.com/web/tools/chrome-devtools/console/utilities

image.png

留下你的脚步
推荐阅读