命令行 API

课后整理 2020-12-20

在控制台中,除了使用console对象,还可以使用一些控制台自带的命令行方法。

$_

$_属性返回上一个表达式的值。例如:

2 + 2
// 4 
$_
// 4

$0 - $4

控制台保存了最近5个在Elements面板选中的DOM元素,$0代表倒数第一个,$1代表倒数第二个,以此类推直到$4。

$(selector)

$(selector)返回第一个匹配的元素,等同于document.querySelector()。注意,如果页面脚本对$有定义,则会覆盖原始的定义。比如,页面里面有 jQuery,控制台执行$(selector)就会采用 jQuery 的实现,返回一个数组。

$(selector)

$$(selector)返回一个选中的DOM对象,等同于document.querySelectorAll。

$x(path)

$x(path)方法返回一个数组,包含匹配特定XPath表达式的所有DOM元素。

$x("//p[a]")

上面代码返回所有包含a元素的p元素。

inspect(object)

inspect(object)方法打开相关面板,并选中相应的元素:DOM元素在Elements面板中显示,JavaScript对象在Profiles面板中显示。

getEventListeners(object)

getEventListeners(object)方法返回一个对象,该对象的成员为登记了回调函数的各种事件(比如click或keydown),每个事件对应一个数组,数组的成员为该事件的回调函数。

keys(object),values(object)

keys(object)方法返回一个数组,包含特定对象的所有键名。

values(object)方法返回一个数组,包含特定对象的所有键值。例如:

var o = {'p1': 'a', 'p2': 'b'};
keys(o)
// ["p1", "p2"]
values(o)
// ["a", "b"]

monitorEvents(object[, events])、unmonitorEvents(object[, events])

monitorEvents(object[, events])方法监听特定对象上发生的特定事件。当这种情况发生时,会返回一个Event对象,包含该事件的相关信息。unmonitorEvents方法用于停止监听。

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

上面代码分别表示单个事件和多个事件的监听方法。

monitorEvents($0, 'mouse');
unmonitorEvents($0, 'mousemove');

上面代码表示如何停止监听。

monitorEvents允许监听同一大类的事件。所有事件可以分成四个大类。例如:

mouse:”mousedown”, “mouseup”, “click”, “dblclick”, “mousemove”, “mouseover”, “mouseout”, “mousewheel” 
key:”keydown”, “keyup”, “keypress”, “textInput” 
touch:”touchstart”, “touchmove”, “touchend”, “touchcancel” 
control:”resize”, “scroll”, “zoom”, “focus”, “blur”, “select”, “change”, “submit”, “reset” 
monitorEvents($("#msg"), "key");

上面代码表示监听所有key大类的事件。

profile([name])、profileEnd()

profile方法用于启动一个特定名称的CPU性能测试,profileEnd方法用于结束该性能测试。

profile('My profile')
profileEnd('My profile')

其他方法

命令行API还提供以下方法。