【JS】提升开发效率,Console控制台方法总结

原文:https://juejin.cn/post/691874...

日志打印

控制台最常用的功能恐怕就是日志的打印查看了,但是大家都知道几种日志打印的方法呢,下面一个一个说。

console.assert(expression, object)

看名字assert(断言)差不多能猜出来是干嘛的。

console.assert(expression, object)

console.assert 接收两个参数,第一个是表达式,第二个是对象。

当表达式的值为 false 时,会打印一个错误,错误的内容就是第二个参数。

// 把这段代码copy到控制台执行

const x = 5;

const y = 3;

const reason = 'x is expected to be less than y';

console.assert(x < y, {x, y, reason});

会看到 reason 被打印出来。

【JS】提升开发效率,Console控制台方法总结

这里我试了一下,第二个参数其实也可以是其他类型的数据。

console.clear()

这个方法式用来清空console控制台的,在刚才的控制台里输入 console.clear() 然后回车,可以看到信息都被清空了。

【JS】提升开发效率,Console控制台方法总结

当然还有其他几种清空的方法

  • 执行 clear(),效果和console.clear()是一样的。
  • 在控制台 按 control + l 按键
  • 在控制台 按command + shift + p,然后输入 clear

【JS】提升开发效率,Console控制台方法总结

第一项就是 Clear console,直接回车就好。

  • Mac 电脑上其实还可以通过按键 command + k来清空控制台。

console.count([label])

这个方法是用来打印调用 count 的次数,可以传入一个参数来当做标识。

console.count('coffee'); // 复制到控制台执行一次

我们会看到控制台会打印:coffee: 1,我们继续执行两次。

【JS】提升开发效率,Console控制台方法总结

可以看到,coffee打印了三次。
如果不传参数,就是default,大家可以自己试一试。

console.countReset([label])

这个和console.count是对应的,用来重置计数的。

【JS】提升开发效率,Console控制台方法总结

console.debug(object [, object, ...])

这个作用与 console.log 是相同的,区别是打印日志的级别不同。console.logInfo 级别, console.debugVerbose 级别。

【JS】提升开发效率,Console控制台方法总结

console.dir(object)

这个方法用来打印指定对象的JSON形式。

【JS】提升开发效率,Console控制台方法总结

这就是 document 对象的JSON形式的内容。

console.dirxml(object)

这个方法用来打印 node 节点的 xml形式。

【JS】提升开发效率,Console控制台方法总结

console.error(object [, object, ...])

这个方法用来打印一个错误的信息,并且包含堆栈轨迹(就是错误发生的路径追踪)。

【JS】提升开发效率,Console控制台方法总结

console.group(label)

这个方法可以将信息分组打印在一起,直到调用 console.groupEnd

// 把这段代码复制到控制台执行

const label = 'Adolescent Irradiated Espionage Tortoises';

console.group(label);

console.info('Leo');

console.info('Mike');

console.info('Don');

console.info('Raph');

console.groupEnd(label);

【JS】提升开发效率,Console控制台方法总结

可以看到在 console.groupconsole.groupEnd 之间打印的信息出现在了一组中,可以被折叠和展开。

console.groupEnd(label)

这个就不说了,上面说过了,和 console.group 是对应的。

console.groupCollapsed(label)

这个的作用和 console.group 是相同的,区别是这个方法打印的日志会默认折叠起来。

还是上面那段代码,只不过把console.group 改成 console.groupCollapsed,再次执行。

【JS】提升开发效率,Console控制台方法总结

可以看到信息默认折叠了。

console.info(object [, object, ...])

这个方法和 console.log 是相同的。

console.log(object [, object, ...])

在控制台打印一个信息。这个应该都很熟悉,用的也是最多的,就不说了。

console.table(array)

将信息打印为一个表格,比如数组

【JS】提升开发效率,Console控制台方法总结

对象也可以

【JS】提升开发效率,Console控制台方法总结

console.time([label])

用来开启一个新的定时器,知道调用 console.timeEnd,并将所消耗的时间打印出来。

// 复制到控制台执行

console.time();

for (var i = 0; i < 100000; i++) {

let square = i ** 2;

}

console.timeEnd();

【JS】提升开发效率,Console控制台方法总结

console.timeEnd([label])

结束定时器,上面说过了。

console.trace()

打印堆栈追踪信息。

// 复制到控制台执行

const first = () => { second(); };

const second = () => { third(); };

const third = () => { fourth(); };

const fourth = () => { console.trace(); };

first();

【JS】提升开发效率,Console控制台方法总结

可以看到执行 console.trace 把函数的调用信息都打印出来了。

console.warn(object [, object, ...])

打印一个警告信息。

【JS】提升开发效率,Console控制台方法总结

到这里也说了好多种打印的方法了,但是打印的信息是分级别的,有错误、警告等。下面就总结一下。

方法日志级别
console.countInfo
console.dirInfo
console.dirxmlInfo
console.infoInfo
console.logInfo
console.tableInfo
console.timeEndInfo
console.traceInfo
console.warnWarning
console.assertError
console.errorError
console.debugVerbose

【JS】提升开发效率,Console控制台方法总结

在控制台如果想要根据日志级别来过滤信息的话,可以通过上面图片中标出的地方,来做过滤。

方法

$_

$_ 返回的是最近的表达式的值。

【JS】提升开发效率,Console控制台方法总结

$0 - $4

$0 - $4返回的是 Elements 面板中最近选择的五个DOM元素或者 Profiles 面板中最近选择5个Javascript堆对象的历史引用。 $0 是最近的引用,$1 是第二近的引用,依次类推。

【JS】提升开发效率,Console控制台方法总结

$(selector, [startNode])

$ 用法与 Jquery 选择器有些类似,但是实际上使用的却是 document.querySelector() 方法.

该方法还接收第二个参数 startNode ,是一个 Node 节点,表示从此开始搜索。

【JS】提升开发效率,Console控制台方法总结

$$(selector, [startNode])

$$ 与上面的 $ 选择器类似,只不过使用的是 document.querySelectorAll() 方法。

【JS】提升开发效率,Console控制台方法总结

$$ 方法也支持第二个参数 startNode,如不传则默认为 document

$x(path, [startNode])

$x(path) 返回一个匹配给定XPath表达式的元素数组。

【JS】提升开发效率,Console控制台方法总结

上面就是返回了一个包含当前页面所有 span 元素的数组。此方法也支持第二个参数 startNode

clear()

清空控制台历史,与 console.clear() 类似。

copy(object)

复制指定对象的字符串形式到剪切板。

debug(function)

该方法接受一个参数,是一个方法。当该方法被调用时,会进入debug。

可以调用 undebug(fn) 方法,来停止 debug。

dir(object)

dir() 方法与 console.dir() 方法相同,返回所传入对象的JSON形式。

【JS】提升开发效率,Console控制台方法总结

dirxml(object)

dirxml()console.dirxml() 方法相同,返回所传入对象的XML形式。

inspect(object/function)

inspect() 在适当的面板中打开并选择指定的元素或对象: DOM元素的Elements面板或JavaScript堆对象的Profiles面板。

【JS】提升开发效率,Console控制台方法总结

getEventListeners(object)

该方法返回注册在指定对象上的事件监听器,返回值是一个对象,包含每个注册事件类型的数组(例如,单击或按下键)。数组成员是该事件的侦听器对象。

【JS】提升开发效率,Console控制台方法总结

keys(object)

该方法返回一个数组,包含传入对象的属性(键)的名称。可以通过 values() 方法来得到对象属性值的数组。

【JS】提升开发效率,Console控制台方法总结

monitor(function)

当调用指定的函数时,控制台会记录一条消息,该消息指出函数名以及在调用函数时传递给函数的参数。

【JS】提升开发效率,Console控制台方法总结

monitorEvents(object[, events])

这个方法接收两个参数,第一个是对象,第二个是事件,当传入的时间在指定对象上触发时,该事件对象会被打印出来。

【JS】提升开发效率,Console控制台方法总结

第二个参数不止可以传入单个事件,还可以传入一个包含多个事件的数组。甚至还可以传入指定的事件类型。

monitorEvents(window, ["resize", "scroll"]); // 传入一个数组

monitorEvents($0, "key"); // 传入一个事件类型

具体事件类型如下:

【JS】提升开发效率,Console控制台方法总结

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

profile() 启动一个Javascript Cpu 概括分析,可以传入一个参数(字符串)。profileEnd() 用来完成一个概要文件,并且在Profile面板显示结果。

queryObjects(Constroctor)

该方法返回指定构造函数创建的对象的数组。比如:

  • queryObjects(Promise) 返回所有的 Promise方法。

  • queryObjects(HTMLElement) 返回所有的HTML。

  • queryObjects(foo) 返回所有通过 new foo() 创建的对象。

【JS】提升开发效率,Console控制台方法总结

queryObjects()的作用域是控制台中当前选择的执行上下文。

table(data[, columns]))

table()console.table() 方法类似。

【JS】提升开发效率,Console控制台方法总结

undebug(function)

undebug(fn)停止对指定函数的调试。

unmonitor(function)

unmonitor(function) 用来停止对指定函数的监测。与 monotor() 方法对应。

unmonitorEvents(object[, events])

unmonitorEvents() 用来停止对传入对象的监测。与 monitorEvents() 方法对应。

values(object)

该方法上面已经说过了,返回包含指定对象的值的数组。


控制台的日志打印方式与各种快捷方法就说到这里,有错误和补充的欢迎提出指正,十分感谢!!!

参考:https://developers.google.com...

以上是 【JS】提升开发效率,Console控制台方法总结 的全部内容, 来源链接: utcz.com/a/102240.html

回到顶部