【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
被打印出来。
这里我试了一下,第二个参数其实也可以是其他类型的数据。
console.clear()
这个方法式用来清空console控制台的,在刚才的控制台里输入 console.clear()
然后回车,可以看到信息都被清空了。
当然还有其他几种清空的方法
- 执行
clear()
,效果和console.clear()
是一样的。 - 在控制台 按
control + l
按键 - 在控制台 按
command + shift + p
,然后输入clear
第一项就是 Clear console
,直接回车就好。
- Mac 电脑上其实还可以通过按键
command + k
来清空控制台。
console.count([label])
这个方法是用来打印调用 count 的次数,可以传入一个参数来当做标识。
console.count('coffee'); // 复制到控制台执行一次
我们会看到控制台会打印:coffee: 1
,我们继续执行两次。
可以看到,coffee
打印了三次。
如果不传参数,就是default
,大家可以自己试一试。
console.countReset([label])
这个和console.count
是对应的,用来重置计数的。
console.debug(object [, object, ...])
这个作用与 console.log
是相同的,区别是打印日志的级别不同。console.log
是 Info
级别, console.debug
是 Verbose
级别。
console.dir(object)
这个方法用来打印指定对象的JSON形式。
这就是 document
对象的JSON形式的内容。
console.dirxml(object)
这个方法用来打印 node
节点的 xml
形式。
console.error(object [, object, ...])
这个方法用来打印一个错误的信息,并且包含堆栈轨迹(就是错误发生的路径追踪)。
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);
可以看到在 console.group
和 console.groupEnd
之间打印的信息出现在了一组中,可以被折叠和展开。
console.groupEnd(label)
这个就不说了,上面说过了,和 console.group
是对应的。
console.groupCollapsed(label)
这个的作用和 console.group
是相同的,区别是这个方法打印的日志会默认折叠起来。
还是上面那段代码,只不过把console.group
改成 console.groupCollapsed
,再次执行。
可以看到信息默认折叠了。
console.info(object [, object, ...])
这个方法和 console.log
是相同的。
console.log(object [, object, ...])
在控制台打印一个信息。这个应该都很熟悉,用的也是最多的,就不说了。
console.table(array)
将信息打印为一个表格,比如数组
对象也可以
console.time([label])
用来开启一个新的定时器,知道调用 console.timeEnd
,并将所消耗的时间打印出来。
// 复制到控制台执行console.time();
for (var i = 0; i < 100000; i++) {
let square = i ** 2;
}
console.timeEnd();
console.timeEnd([label])
结束定时器,上面说过了。
console.trace()
打印堆栈追踪信息。
// 复制到控制台执行const first = () => { second(); };
const second = () => { third(); };
const third = () => { fourth(); };
const fourth = () => { console.trace(); };
first();
可以看到执行 console.trace
把函数的调用信息都打印出来了。
console.warn(object [, object, ...])
打印一个警告信息。
到这里也说了好多种打印的方法了,但是打印的信息是分级别的,有错误、警告等。下面就总结一下。
方法 | 日志级别 |
---|---|
console.count | Info |
console.dir | Info |
console.dirxml | Info |
console.info | Info |
console.log | Info |
console.table | Info |
console.timeEnd | Info |
console.trace | Info |
console.warn | Warning |
console.assert | Error |
console.error | Error |
console.debug | Verbose |
在控制台如果想要根据日志级别来过滤信息的话,可以通过上面图片中标出的地方,来做过滤。
方法
$_
$_
返回的是最近的表达式的值。
$0
- $4
$0
- $4
返回的是 Elements
面板中最近选择的五个DOM元素或者 Profiles
面板中最近选择5个Javascript堆对象的历史引用。 $0
是最近的引用,$1
是第二近的引用,依次类推。
$(selector, [startNode])
$
用法与 Jquery
选择器有些类似,但是实际上使用的却是 document.querySelector()
方法.
该方法还接收第二个参数 startNode
,是一个 Node
节点,表示从此开始搜索。
$$(selector, [startNode])
$$
与上面的 $
选择器类似,只不过使用的是 document.querySelectorAll()
方法。
$$
方法也支持第二个参数 startNode
,如不传则默认为 document
。
$x(path, [startNode])
$x(path)
返回一个匹配给定XPath表达式的元素数组。
上面就是返回了一个包含当前页面所有 span
元素的数组。此方法也支持第二个参数 startNode
。
clear()
清空控制台历史,与 console.clear()
类似。
copy(object)
复制指定对象的字符串形式到剪切板。
debug(function)
该方法接受一个参数,是一个方法。当该方法被调用时,会进入debug。
可以调用 undebug(fn)
方法,来停止 debug。
dir(object)
dir()
方法与 console.dir()
方法相同,返回所传入对象的JSON形式。
dirxml(object)
dirxml()
与 console.dirxml()
方法相同,返回所传入对象的XML形式。
inspect(object/function)
inspect()
在适当的面板中打开并选择指定的元素或对象: DOM元素的Elements面板或JavaScript堆对象的Profiles面板。
getEventListeners(object)
该方法返回注册在指定对象上的事件监听器,返回值是一个对象,包含每个注册事件类型的数组(例如,单击或按下键)。数组成员是该事件的侦听器对象。
keys(object)
该方法返回一个数组,包含传入对象的属性(键)的名称。可以通过 values()
方法来得到对象属性值的数组。
monitor(function)
当调用指定的函数时,控制台会记录一条消息,该消息指出函数名以及在调用函数时传递给函数的参数。
monitorEvents(object[, events])
这个方法接收两个参数,第一个是对象,第二个是事件,当传入的时间在指定对象上触发时,该事件对象会被打印出来。
第二个参数不止可以传入单个事件,还可以传入一个包含多个事件的数组。甚至还可以传入指定的事件类型。
monitorEvents(window, ["resize", "scroll"]); // 传入一个数组monitorEvents($0, "key"); // 传入一个事件类型
具体事件类型如下:
profile([name])
和 profileEnd([name])
profile()
启动一个Javascript Cpu 概括分析,可以传入一个参数(字符串)。profileEnd()
用来完成一个概要文件,并且在Profile面板显示结果。
queryObjects(Constroctor)
该方法返回指定构造函数创建的对象的数组。比如:
queryObjects(Promise)
返回所有的 Promise方法。queryObjects(HTMLElement)
返回所有的HTML。queryObjects(foo)
返回所有通过new foo()
创建的对象。
queryObjects()
的作用域是控制台中当前选择的执行上下文。
table(data[, columns]))
table()
与 console.table()
方法类似。
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