控制台不完全指南,控制台如何使用

2019-10-05 20:26 来源:未知

Chrome 调整台不完全指南

2015/01/10 · JavaScript · 1 评论 · Chrome

本文小编: 伯乐在线 - 刘哇勇 。未经作者许可,禁绝转发!
接待到场伯乐在线 专辑作者。

Chrome的开拓者工具已经庞大到没朋友的程度了,非常是其功效丰硕分界面友好的console,使用方便能够犹如下作用:

  • 越来越高「逼格」越来越快「开垦调节和测量检验」更加强「进级级的Frontender」
  • Bug无处遁形「Console大法好」

前言

console.log

世家都会用log,但鲜有人很好地行使console.error , console.warn 等将出口到调整台的消息进行分类整理。
他俩功用分别一点都不大,意义在于将出口到调整台的音信举行分拣,或许说让它们更语义化。
依次所代表的语义如下:

  • console.log:普通新闻
  • console.info:提醒类音讯
  • console.error:错误音讯
  • console.warn:警示消息

当合理接纳上述log方法后,可以非常的低价地在调节台选拔查看特定项目标消息。

JavaScript

console.log('一颗红心向太阳','吼吼~'); console.info('楼上药不可能停!'); console.warn('楼上嘴太贱!'); console.error('楼上关你毛事?');

1
2
3
4
console.log('一颗红心向太阳','吼吼~');
console.info('楼上药不能停!');
console.warn('楼上嘴太贱!');
console.error('楼上关你毛事?');

金沙澳门唯一官网 1

要是再同盟console.group 与console.groupEnd,能够将这种分类管理的合计算与发放挥到极致。那相符于在开辟贰个规模极大模块非常多很复杂的Web APP时,将分其他log音讯分组到以各自命名空间为名称的组里面。

JavaScript

console.group("app.foo"); console.log("来自foo模块的音讯 blah blah blah..."); console.groupEnd(); console.group("app.bar"); console.log("来自bar模块的新闻 blah blah blah..."); console.groupEnd();

1
2
3
4
5
6
console.group("app.foo");
console.log("来自foo模块的信息 blah blah blah...");
console.groupEnd();
console.group("app.bar");
console.log("来自bar模块的信息 blah blah blah...");
console.groupEnd();

金沙澳门唯一官网 2

而关于console.log,早已被调侃坏了。一切都来自Chrome提供了如此八个API:第三个参数能够分包部分格式化的命令举例%c

比如给hello world 做件美丽的嫁衣再拉出来见人:

JavaScript

console.log('%chello world','font-size:25px;color:red;');

1
console.log('%chello world','font-size:25px;color:red;');

金沙澳门唯一官网 3

若果您认为非常不够过瘾,那就把你能写出来的最华丽的CSS样式都应用上啊,比如渐变。于是你可以取得如下华丽丽的功效:

JavaScript

console.log('%chello world', 'background-image:-webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );color:transparent;-webkit-background-clip: text;font-size:5em;');

1
console.log('%chello world', 'background-image:-webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );color:transparent;-webkit-background-clip: text;font-size:5em;');

金沙澳门唯一官网 4

各个招大招的韵律啊~

瞧着上面密集的代码不用惊慌,上边console.log()其次个参数全是纯CSS用来支配样式的,你不会面生。而首先个参数里能够带用百分号初步的转义指令,如下面输出带样式的文字时采取的%c一声令下。更详细的吩咐参见官方API文书档案的以此表格。

如若还相当不够过瘾,这大家来log一些图片吧,以致。。。动图?
对,你得先有图,大家拿这张图为例。

JavaScript

console.log("%c", "padding:50px 300px;line-height:120px;backgroundnull:url('') no-repeat;");

1
console.log("%c", "padding:50px 300px;line-height:120px;backgroundnull:url('http://wayou.github.io/2014/09/10/chrome-console-tips-and-tricks/rabbit.gif') no-repeat;");

金沙澳门唯一官网 5

望着上边摆荡的豆比兔是或不是有种抽它一脸的扼腕。

除此,console.table 更是直接以表格的款型将数据输出,无法赞得太多!
借用以前写过的一篇博文里的事例:

JavaScript

var data = [{'品名': '杜雷斯', '数量': 4}, {'品名': '冈本', '数量': 3}]; console.table(data);

1
2
var data = [{'品名': '杜雷斯', '数量': 4}, {'品名': '冈本', '数量': 3}];
console.table(data);

金沙澳门唯一官网 6

另外,console.log() 接收不定参数,参数间用逗号分隔,最后会输出会将它们以空白字符连接。

JavaScript

console.log('%c你好','color:red;','小明','你掌握小红被阿妈打了么');

1
console.log('%c你好','color:red;','小明','你知道小红被妈妈打了么');

金沙澳门唯一官网 7

Chrome浏览器作者想是每三个前端er必用工具之一吧,一部分缘由是它速度快,体量非常小,扶助的新特点也比别的浏览器多,还应该有一部分本身想正是因为它的调控台功效强大了吧,说它是神器一点也可是分,很方便。但其实过多开拓者并不曾用出调整台的精髓,只是采取简便的console.log();其实调整台功效远远不仅仅这么轻松哦。

console.assert

当您想代码满意有些原则时才输出音信到调节台,那么你无需写if要么伊利表达式来完成指标,cosole.assert就是如此场景下一种很好的工具,它会先对传播的表明式进行预知,唯有表达式为假时才输出相应消息到调整台。

JavaScript

var isDebug=false; console.assert(isDebug,'开荒中的log信息。。。');

1
2
var isDebug=false;
console.assert(isDebug,'开发中的log信息。。。');

金沙澳门唯一官网 8

console.clear

console.count

而外标准输出的风貌,还大概有广阔的场地是计数。
当您想计算某段代码实行了略微次时也没有需求自个儿去写相关逻辑,内置的console.count能够很地胜任那样的职责。

JavaScript

function foo(){ //别的函数逻辑blah blah。。。 console.count('foo 被实行的次数:'); } foo(); foo(); foo();

1
2
3
4
5
6
7
function foo(){
//其他函数逻辑blah blah。。。
console.count('foo 被执行的次数:');
}
foo();
foo();
foo();

金沙澳门唯一官网 9

console.clear();清空调整台,这几个理应和console.log名气同样高啊。

console.dir

将DOM结点以JavaScript对象的花样出口到调整台
console.log是直接将该DOM结点以DOM树的组织实行输出,与在要素考察时观察的布局是一律的。区别的表现情势,一样的古雅,各个体位任君选拔反正正是福利与关切。

JavaScript

金沙澳门唯一官网,console.dir(document.body); console.log(document.body);

1
2
console.dir(document.body);
console.log(document.body);

金沙澳门唯一官网 10

console.log家族

console.time & console.timeEnd

出口一些调节和测量试验新闻是调节台最常用的法力,当然,它的机能远不仅仅于此。当做一些品质测验时,同样能够在那边很有利地进行。
诸如必要考虑衡量一段代码推行的耗费时间意况时,能够用console.time与 console.timeEnd来做那件事。

此处借用官方文书档案的例证:

JavaScript

console.time("Array initialize"); var array= new Array(1000000); for (var i = array.length - 1; i >= 0; i--) { array[i] = new Object(); }; console.timeEnd("Array initialize");

1
2
3
4
5
6
console.time("Array initialize");
var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
    array[i] = new Object();
};
console.timeEnd("Array initialize");

金沙澳门唯一官网 11

本来,大家也得以采取自个儿写代码来计时:

JavaScript

var start=new Date().getTime(); var array= new Array(1000000); for (var i = array.length - 1; i >= 0; i--) { array[i] = new Object(); }; console.log(new Date().getTime()-start);

1
2
3
4
5
6
var start=new Date().getTime();
var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
    array[i] = new Object();
};
console.log(new Date().getTime()-start);

金沙澳门唯一官网 12

相信您也见到了,用内置的console.time是何等地方便人民群众,省去了友好写代码来测算的工作量。别的值得一说的是,通过调用内置的console.time赢得的结果要比本身手动总括的小运差更标准可信。

先简介一下chrome的调控台,张开chrome浏览器,按f12就能够轻便的开发调节台

console.profile & console.timeLime

当想要查看CPU使用有关的音信时,能够动用console.profile配合 console.profileEnd来造成那个需求。
这一效果与利益能够因此UI分界面来造成,Chrome 开荒者工具里面有个tab就是Profile

与此类似的作用还应该有console.timeLine配合 console.timeLineEnd,它的效果是从头记录一段时间轴,同样能够透过Chrome开垦者工具里的Timeline 标签来实行对应操作。

所以在小编眼里这四个措施有个别鸡肋,因为都得以经过操作分界面来成功。但起码她提供了一种命令行格局的互动,照旧多了种姿势供选拔吧。

金沙澳门唯一官网 13

console.trace

库房追踪相关的调治将养能够动用console.trace。那几个同样能够经过UI界面达成。今世码被打断点后,能够在Call Stack面板中查阅相关仓库新闻。

上边介绍的都以挂在window.console那一个目的上面包车型大巴章程,统称为Console API,接下去的这几个办法得本地说应该叫命令,是Chrome内置提供,在调控桃园动用的,他们统称为Command Line API。

只要您是壹人开荒者,作者想console.log鲜明是平日利用的了,我们第一看看console.log的多少个汉子:

$

如同美刀总是被程序猿及各样编制程序语言研讨所重申「你看看PHP代码就精晓PHPer有多爱钱了」,在Chrome的主宰台里,$用处还真是蛮多且便于的。
$_一声令下归来近年来贰次表明式施行的结果,作用跟按进步的方向键再回车是一律的,但它能够做为贰个变量使用在您接下去的说明式中:

JavaScript

2+2//回车,再 $_+1//回车得5

1
2
2+2//回车,再
$_+1//回车得5

金沙澳门唯一官网 14

上面的$_亟待驾驭其奥义技能运用格外,而$0~$4则表示了目前5个你挑选过的DOM节点。
如何意思?在页面右击采取审查元素,然后在弹出来的DOM结点树下边随意点选,那一个被点过的节点会被记录下来,而$0会回去近期贰回点选的DOM结点,依此类推,$1重临的是顶级次点选的DOM节点,最多保留了5个,假如远远不够5个,则赶回undefined
金沙澳门唯一官网 15

别的值得一赞的是,Chrome 调整台北原生援助类jQuery的采取器,也等于说你可以用$丰硕熟习的css选用器来挑选DOM节点,多么滴熟谙。

JavaScript

$('body')

1
$('body')

金沙澳门唯一官网 16

$(selector)再次回到的是满足选用原则的首个DOM元素。
剥去她伪善的假相,其实$(selector)是原生JavaScript document.querySelector() 的封装。
与此同一时候另多少个下令$$(selector)回来的是颇负满意选取原则的要素的多个汇合,是对document.querySelectorAll() 的封装。

JavaScript

$$('div')

1
$$('div')

金沙澳门唯一官网 17

1.console.log ('普通音讯')

copy

通过此命令能够将在调节台获取到的剧情复制到剪贴板。

JavaScript

copy(document.body)

1
copy(document.body)

下一场您就足以四处粘了:

金沙澳门唯一官网 18

看完此条命令行,机智的您是否跟脑洞全开的自个儿同样,冒出了这么二个设法:那就是经过那些命令能够在JavaScript里开展复制操作进而不用正视Flash插件了。
But现实是残暴的,如以前所述的,这里的调控台命令只好在调控台南蒙受中实践,因为他不感觉然附于任何全局变量举例window,所以实际上在JS代码里是访谈不了这几个copy方式的,所以从代码层面来调用复制作而成效也就无从谈到。但愿有天浏览器会提供对应的JS达成呢~

2.console.info ('提示性音讯')

keys & values

那是一对基友。前面一个再次来到传入对象具有属性名组成的数据,前面一个重回全部属性值组成的数组。具体请看上边包车型地铁事例:

JavaScript

var tboy={name:'wayou',gender:'unknown',hobby:'opposite to the gender'}; keys(tboy); values(tboy);

1
2
3
var tboy={name:'wayou',gender:'unknown',hobby:'opposite to the gender'};
keys(tboy);
values(tboy);

金沙澳门唯一官网 19

3.console.error ('错误音讯')

monitor & unmonitor

monitor(function),它接受四个函数名作为参数,举个例子function a,每次a被实行了,都会在支配台出口一条新闻,里面含有了函数的名目a及进行时所传颂的参数。

而unmonitor(function)正是用来终止这一监听。

JavaScript

function sayHello(name){ alert('hello,'+name); } monitor(sayHello); sayHello('wayou'); unmonitor(sayHello); sayHello('wayou');

1
2
3
4
5
6
7
function sayHello(name){
alert('hello,'+name);
}
monitor(sayHello);
sayHello('wayou');
unmonitor(sayHello);
sayHello('wayou');

金沙澳门唯一官网 20

4.console.warn ('警示音信')

debug & undebug

debug一样也是抽取叁个函数名作为参数。当该函数试行时自动断下来以供调节和测量试验,类似于在该函数的入口处打了个断点,可以经过debugger来做到,同临时间也能够经过在Chrome开垦者工具里找到呼应源码然后手动打断点。
undebug 则是破除该断点。

而其余还应该有不菲命令则让人绝非说的私欲,因为许多都能够透过Chrome开辟者工具的UI分界面来操作何况比用在决定台输入要有益于。

金沙澳门唯一官网 21

REFERENCE

  • Styled console logging in the Chrome DevTools (Canary)
  • Chrome Console API
  • Chrome Console Command Line API

    1 赞 9 收藏 1 评论

世家都会用log,但比少之甚少有人能够很好地行使console.error,console.warn 等将出口到调节台的消息进行分类整理。他们成效分别比不大,意义在于将出口到调节台的消息进行分类,只怕说让它们更语义化。

有关小编:刘哇勇

金沙澳门唯一官网 22

放浪不急爱自由 个人主页 · 作者的小说 · 17 ·   

金沙澳门唯一官网 23

借使再合营console.group 与console.groupEnd,能够将这种分类管理的思量发挥到极致。那相符于在开垦贰个层面相当的大模块相当多很复杂的Web APP时,将独家的log音讯分组到以独家命名空间为名称的组里面。

console.group("app.bundle");
console.warn("来自bundle模块的警告消息1");console.warn("来自bundle模块的警戒音信2");
console.groupEnd();

console.group("app.bundle");
console.log("来自bundle模块的消息1");console.log("来自bundle模块的新闻2");
console.groupEnd();

金沙澳门唯一官网 24

如此的主宰台消息看上去就显而易见了,就绝不再为了找那是属于那一行代码输出的再翻一回源码了。

除此以外,console.log家族还给大家提供了叁个的API:第七个参数能够带一些格式化指令,比方%c,n;看上面那么些炫丽的功能:

console.log('%chello world', 'background-image:-webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );color:transparent;-webkit-background-clip: text;font-size:5em;');

金沙澳门唯一官网 25

理当如此,图片也是能够的,读者能够自动尝试,修改上述代码就可以。

别的,console.log() 接收不定参数,参数间用逗号分隔,最后会输出会将它们以空白字符连接。

金沙澳门唯一官网 26

console.table

望着这种“黑魔法”是还是不是有种坑分的痛感呢,其实还不独有哦!console.table能够让大家输出表格,示例:

var data = {code:200,content:[{'品名': '杜雷斯', '数量': 4}, {'品名': '冈本', '数量': 3}]};
console.table(data.content);

金沙澳门唯一官网 27

部分时候后端传回到一大串数据,是否以为直接console.log或是通过抓包工具查看都会令人晕头转向呢,今年正事console.table发挥功用的时候了,以表格的花样表现数据,自然不问可知。

console.assert

var isDebug=false;
console.assert(isDebug,'开荒中的log音讯。。。');

当你想代码满意有个别原则时才输出消息到调节台,那么你没有要求写if只怕伊利表明式来到达指标,cosole.assert正是这么场景下一种很好的工具,它会先对传播的表明式进行预见,只有表明式为假时才输出相应音信到调整台。

金沙澳门唯一官网 28

console.count

除此而外规范输出的场馆,还会有大范围的场景是计数。

当您想总结某段代码实践了不怎么次时也没有须要自个儿去写相关逻辑,内置的console.count能够很地胜任这样的任务.

金沙澳门唯一官网 29

console.dir

将DOM结点以JavaScript对象的样式出口到调控台,而console.log是一向将该DOM结点以DOM树的布局进行输出,与在要素审核时看见的结构是一模一样的。分化的表现情势,一样的古雅,各个体位任君选拔反正便是便于与保护。

console.dir(document.body);
console.log(document.body);

金沙澳门唯一官网 30

console.time & console.timeEnd

出口一些调节和测验新闻是调节台最常用的效率,当然,它的作用远不仅于此。充作一些特性测量试验时,同样能够在此地很有利地张开。举个例子必要考虑衡量一段代码试行的耗费时间情状时,能够用console.time与 console.timeEnd来做那一件事。

console.time("Array耗时");
var array= new Array(10000000);
for (var i = array.length - 1; i >= 0; i--) {
array[i] = new Object();
};
console.timeEnd("Array耗时");

金沙澳门唯一官网 31

当想要查看CPU使用相关的新闻时,能够应用console.profile协作console.profileEnd来成功这些供给。
这一效果能够透过UI分界面来成功,Chrome 开垦者工具里面有个tab就是Profile。使用格局和console.time基本同样,其实time开采者工具里也会有个tab正是timeline。关于console.prefile博主就不做多余的介绍了。想要做越来越多询问的读者能够看这里。

$

讲真,美利坚联邦合众国程序猿们真的很喜欢money啊(什么人又不是啊),看看PHP就精通了,满屏的$。而在Chrome的决定台里,$用处同样是蛮多且便于的。

2+2//回车,再
$_+1//回车得5

上面的$_内需精晓其奥义技艺应用合适,而$0~$4则象征了不久前5个你选择过的DOM节点。

哪些意思呢?在页面右击选拔审核成分,然后在弹出来的DOM结点树上边随意点选,这几个被点过的节点会被记录下来,而$0会重返方今一遍点选的DOM结点,依此类推,$1重返的是最棒次点选的DOM节点,最多保留了5个,假如缺乏5个,则再次来到undefined。

金沙澳门唯一官网 32

其它值得一赞的是,Chrome 调整桃园原生援助类jQuery的选用器,也正是说你能够用$加上熟识的css采纳器来选拔DOM节点,多么滴熟知。

$('body');
$$('div');

[图表上传中。。。(12)]

$(selector)重返的是知足选拔原则的第4个DOM成分。

剥去她伪善的糖衣,其实$(selector)是原生JavaScript document.querySelector() 的包装。
还要另一个发令$$(selector)重返的是兼具满意选用规范的成分的一个汇聚,是对document.querySelectorAll() 的包裹。

$x(path)

将所相称的节点放在一个数组里重回

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

[图表上传中。。。(13)]

$x("//p")相配全数的p节点,$x("//p[a]");相配全体子节点包括a的p节点

copy

copy(document.body)

下一场您就能够Ctrl+v了。

留意:他不以为然附于任何全局变量举例window,所以实际上在JS代码里是探问不了这么些copy方法的,所以从代码层面来调用复制作而成效也就无从聊起。但愿有天浏览器会提供对应的JS实现啊~那样大家就能够经过js代码进行复制操作而不用再信任Flash插件了。

keys & values

那是一对老铁。前面一个重回传入对象具有属性名组成的数码,前者再次来到全体属性值组成的数组。具体请看下边的事例:

var tfboy={name:'wayou',gender:'unknown',hobby:'opposite to the gender'};
keys(tfboy);
values(tfboy);

[图表上传中。。。(14)]

monitor & unmonitor

monitor(function),它接受三个函数名作为参数,比方function a,每趟a被推行了,都会在支配台出口一条新闻,里面含有了函数的名称a及实践时所传诵的参数。而unmonitor(function)就是用来终止这一监听。

function sayHello(name){
alert('hello,'+name);
}
monitor(sayHello);
sayHello('damonare');
sayHello('tjz');
unmonitor(sayHello);

[图表上传中。。。(15)]

debug & undebug

debug同样也是接受叁个函数名作为参数。当该函数推行时自动断下来以供调试,类似于在该函数的入口处打了个断点,能够透过debugger来做到,同期也足以透过在Chrome开拓者工具里找到相应源码然后手动打断点。而undebug 则是铲除该断点。而别的还会有不菲命令则让人绝非说的私欲,因为不菲都能够透过Chrome开拓者工具的UI分界面来操作而且比用在决定台输入要低价。

[图表上传中。。。(16)]

参考

Console API文档;

Commond API;

Chrome 调节台不完全指南 – 刘哇勇

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于前端开发,转载请注明出处:控制台不完全指南,控制台如何使用