www.2527.com_澳门新葡8455手机版_新京葡娱乐场网址_
做最好的网站

调整台不完全指南,调控台怎么着行使

2019-11-29 09:06 来源:未知

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('豆蔻梢头颗红心向太阳','吼吼~'卡塔尔(英语:State of Qatar); console.info('楼上药无法停!'卡塔尔(قطر‎; console.warn('楼上嘴太贱!'卡塔尔(قطر‎; console.error('楼上关你毛事?'卡塔尔;

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

Web前端 1

假使再同盟console.group 与console.groupEnd,能够将这种分类管理的思维发挥到十二万分。那相符于在付出二个局面十分大模块比超多很复杂的Web 应用软件时,将独家的log音信分组到以分别命名空间为名称的组里面。

JavaScript

console.group("app.foo"卡塔尔国; console.log("来自foo模块的音讯 blah blah blah..."卡塔尔(قطر‎; console.groupEnd(卡塔尔国; console.group("app.bar"卡塔尔(英语:State of Qatar); console.log("来自bar模块的音讯 blah blah blah..."卡塔尔(英语:State of Qatar); 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();

Web前端 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;');

Web前端 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;');

Web前端 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;");

Web前端 5

瞧着方面挥舞的豆比兔是还是不是有种抽它一脸的激动。

除此,console.table 更是一贯以表格的款式将数据输出,不能赞得太多!
借用以前写过的豆蔻梢头篇博文里的例证:

JavaScript

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

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

Web前端 6

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

JavaScript

console.log('%c你好','color:red;','小明','你驾驭小红被阿妈打了么'卡塔尔(英语:State of Qatar);

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

Web前端 7

Chrome浏览器作者想是每叁个前端er必用工具之风流倜傥吧,风流倜傥部分缘由是它速度快,体积超级小,帮忙的新天性也比别的浏览器多,还应该有风姿洒脱部分笔者想正是因为它的调控台功效强盛了吗,说它是神器一点也可是分,很方便。但实在过多开采者并不曾用出调整台的精华,只是选拔简便的console.log(卡塔尔国;其实调节台效率远远不唯有这么轻便哦。

console.assert

当你想代码满意有些条件时才输出音信到调节台,那么您未有要求写if抑或安慕希表明式来到达目标,cosole.assert便是这么情状下后生可畏种很好的工具,它会先对传播的表明式进行预感,唯有表明式为假时才输出相应音信到调整台。

JavaScript

var isDebug=false; console.assert(isDebug,'开拓中的log音讯。。。'卡塔尔(英语:State of Qatar);

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

Web前端 8

console.clear

console.count

而外标准输出的场景,还或者有大规模的场景是计数。
当你想计算某段代码奉行了某些次时也没有必要自身去写相关逻辑,内置的console.count能够很地胜任那样的天职。

JavaScript

function foo(卡塔尔(قطر‎{ //别的函数逻辑blah blah。。。 console.count('foo 被实施的次数:'卡塔尔; } foo(卡塔尔(英语:State of Qatar); foo(卡塔尔(英语:State of Qatar); foo(卡塔尔(英语:State of Qatar);

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

Web前端 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);

Web前端 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");

Web前端 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);

Web前端 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 标签来进展相应操作。

故此在作者眼里那八个点子有个别鸡肋,因为都得以经过操作分界面来成功。但起码他提供了生机勃勃种命令行情势的交互作用,照旧多了种姿势供采取吧。

Web前端 13

console.trace

库房追踪相关的调养可以动用console.trace。那几个一样能够经过UI分界面实现。今世码被打断点后,能够在Call Stack面板中查阅相关货仓消息。

地方介绍的都以挂在window.console其一指标上边包车型大巴形式,统称为Console API,接下去的这一个方法得本地说应该叫命令,是Chrome内置提供,在调控新竹动用的,他们统称为Command Line API。

假如你是一人开拓者,作者想console.log确定是有时选取的了,我们任重(Ren Zhong卡塔尔(英语:State of Qatar)而道远看看console.log的多少个兄弟:

$

犹如美刀总是被工程师及各样编制程序语言所好感「你看看PHP代码就领会PHPer有多爱钱了」,在Chrome的操纵台里,$用场还真是蛮多且有助于的。
$_命令归来近期二次表达式实行的结果,功用跟按升高的方向键再回车是大器晚成致的,但它能够做为三个变量使用在你接下去的表明式中:

JavaScript

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

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

Web前端 14

上面的$_亟需领会其奥义本事运用合适,而$0~$4则意味着了近年来5个你筛选过的DOM节点。
怎么样意思?在页面右击接纳审查元素,然后在弹出来的DOM结点树下面随意点选,这一个被点过的节点会被记录下来,而$0会重返方今一回点选的DOM结点,就那样类推,$1重临的是精品次点选的DOM节点,最多保留了5个,假设非常不足5个,则赶回undefined
Web前端 15

别的值得后生可畏赞的是,Chrome 调节高雄原生支持类jQuery的采纳器,也便是说你能够用$增进熟悉的css选取器来抉择DOM节点,多么滴熟练。

JavaScript

$('body')

1
$('body')

Web前端 16

$(selector卡塔尔(英语:State of Qatar)重返的是满足选择条件的第三个DOM成分。
剥去她伪善的外衣,其实$(selector)是原生JavaScript document.querySelector() 的封装。
还要另叁个限令$$(selector)归来的是全部满足选用条件的要素的二个会面,是对document.querySelectorAll() 的封装。

JavaScript

$$('div')

1
$$('div')

Web前端 17

1.console.log ('普通音信'卡塔尔

copy

因此此命令能够就要调整台获取到的剧情复制到剪贴板。

JavaScript

copy(document.body)

1
copy(document.body)

下一场你就足以随地粘了:

Web前端 18

看完此条命令行,机智的您是或不是跟脑洞全开的自己同样,冒出了那样二个设法:那就是经过这一个命令能够在JavaScript里张开复制操作进而不用依赖Flash插件了。
But现实是凶暴的,如在此以前所述的,这里的垄断(monopoly)台命令只好在调节台南情状中实行,因为他不认为然附于任何全局变量譬喻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);

Web前端 19

3.console.error ('错误音讯'卡塔尔国

monitor & unmonitor

monitor(function卡塔尔(英语:State of Qatar),它接受二个函数名作为参数,比如function a,每次a被实施了,都会在支配台出口一条音讯,里面包罗了函数的名目a及进行时所传颂的参数。

而unmonitor(function卡塔尔(英语:State of Qatar)正是用来终止这一监听。

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');

Web前端 20

4.console.warn ('警报消息'卡塔尔(英语:State of Qatar)

debug & undebug

debug相仿也是收到三个函数名作为参数。当该函数实行时自动断下来以供调节和测量检验,相仿于在该函数的入口处打了个断点,能够因此debugger来做到,同期也得以通过在Chrome开拓者工具里找到呼应源码然后手动打断点。
undebug 则是驱除该断点。

而其余还有许多命令则令人从未说的私欲,因为不菲都足以透过Chrome开拓者工具的UI分界面来操作而且比用在支配台输入要有益于。

Web前端 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 等将出口到调控台的音讯进行分类收拾。他们功效分别十分小,意义在于将出口到调节台的新闻实行分拣,可能说让它们更语义化。

至于作者:刘哇勇

Web前端 22

放浪不急爱自由 个人主页 · 笔者的稿子 · 17 ·   

Web前端 23

借使再合营console.group 与console.groupEnd,能够将这种分类处理的构思发挥到十二万分。那适合于在付出贰个层面十分大模块非常多很复杂的Web 应用程式时,将各自的log音讯分组到以各自命名空间为名称的组里面。

console.group("app.bundle");
console.warn("来自bundle模块的警告音讯1"卡塔尔(英语:State of Qatar);console.warn("来自bundle模块的警戒消息2"卡塔尔(قطر‎;
console.groupEnd();

console.group("app.bundle");
console.log("来自bundle模块的新闻1"卡塔尔(قطر‎;console.log("来自bundle模块的消息2"卡塔尔;
console.groupEnd();

Web前端 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;');

Web前端 25

自然,图片也是足以的,读者能够活动尝试,改良上述代码就可以。

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

Web前端 26

console.table

看着这种“黑法力”是否有种坑分的痛感啊,其实还不独有哦!console.table可以让大家输出表格,示例:

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

Web前端 27

风姿潇洒对时候后端传回到一大串数据,是或不是认为直接console.log或是通过抓包工具查看都会令人蒙头转向呢,此时正事console.table发挥成效的时候了,以表格的款式表现数据,自然一望而知。

console.assert

var isDebug=false;
console.assert(isDebug,'开垦中的log新闻。。。'卡塔尔(英语:State of Qatar);

当你想代码满意有些条件时才输出音信到调整台,那么您完全没须要写if或许安慕希表明式来达到目标,cosole.assert正是那样场景下生机勃勃种很好的工具,它会先对传播的表明式举办预感,独有表达式为假时才输出相应新闻到调控台。

Web前端 28

console.count

除此而外标准输出的气象,还会有遍布的意况是计数。

当您想总括某段代码试行了多少次时也完全未有必要自身去写相关逻辑,内置的console.count能够很地胜任那样的职责.

Web前端 29

console.dir

将DOM结点以JavaScript对象的款式出口到调节台,而console.log是直接将该DOM结点以DOM树的布局举办输出,与在要素考察时见到的布局是同生机勃勃的。分歧的显现情势,同样的幽雅,各类体位任君接受反正正是惠及与关心。

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

Web前端 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耗时");

Web前端 31

当想要查看CPU使用有关的音讯时,能够运用console.profile合作console.profileEnd来产生这些要求。
那风流倜傥效应能够透过UI分界面来实现,Chrome 开垦者工具里面有个tab就是Profile。使用办法和console.time基本等同,其实time开辟者工具里也许有个tab正是timeline。关于console.prefile博主就不做多余的介绍了。想要做越来越多询问的读者可以看这里。

$

讲真,United States程序猿们着实相当的爱怜money啊(什么人又不是啊),看看PHP就驾驭了,满屏的$。而在Chrome的调整台里,$用途相仿是蛮多且便于的。

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

上面的$_急需掌握其奥义本领使用方便,而$0~$4则表示了几日前5个你选择过的DOM节点。

如何看头啊?在页面右击选择核查成分,然后在弹出来的DOM结点树上边随便点选,这么些被点过的节点会被记录下来,而$0会回到方今贰回点选的DOM结点,由此及彼,$1重回的是顶级次点选的DOM节点,最多保留了5个,要是远远不足5个,则重临undefined。

Web前端 32

除此以外值得大器晚成赞的是,Chrome 调控台北原生帮助类jQuery的选择器,也正是说你能够用$加上纯熟的css选用器来选拔DOM节点,多么滴谙习。

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

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

$(selector卡塔尔(قطر‎重回的是满意选拔标准的第4个DOM成分。

剥去他伪善的糖衣,其实$(selector卡塔尔国是原生JavaScript document.querySelector(卡塔尔(英语:State of Qatar) 的包装。
还要另三个发令$$(selector卡塔尔重返的是独具满意选取标准的因素的二个集聚,是对document.querySelectorAll(卡塔尔(英语:State of Qatar)的包装。

$x(path)

将所匹配的节点放在一个数组里重返

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

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

$x("//p"卡塔尔相称全体的p节点,$x("//p[a]"卡塔尔(英语:State of Qatar);相配全数子节点包涵a的p节点

copy

Web前端,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标签:
版权声明:本文由澳门新葡8455手机版发布于Web前端,转载请注明出处:调整台不完全指南,调控台怎么着行使