转自http://www.cnblogs.com/ctriphire/p/4116207.htmljavascript
你们都有用过各类类型的浏览器,每种浏览器都有本身的特点,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,由于它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方。可能你们对console.log会有必定的了解,内心不免会想调试的时候用alert不就好了,干吗还要用console.log这么一长串的字符串来替代alert输出信息呢,下面我就介绍一些调试的入门技巧,让你爱上console.logcss
先的简单介绍一下chrome的控制台,打开chrome浏览器,按f12就能够轻松的打开控制台html
你们能够看到控制台里面有一首诗还有其它信息,若是想清空控制台,能够点击左上角那个来清空,固然也能够经过在控制台输入console.clear()来实现清空控制台信息。以下图所示
前端
如今假设一个场景,若是一个数组里面有成百上千的元素,可是你想知道每一个元素具体的值,这时候想一想若是你用alert那将是多惨的一件事情,由于alert阻断线程运行,你不点击alert框的肯定按钮下一个alert就不会出现。java
下面咱们用console.log来替换,感觉一下它的魅力。node
看了上面这张图,是否是认识到log的强大之处了,下面咱们来看看console里面具体提供了哪些方法能够供咱们平时调试时使用。chrome
["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear", "getEventListeners", "undebug", "monitor", "unmonitor", "table", "$0", "$1", "$2", "$3", "$4", "$_"]api
下面咱们来一一介绍一下各个方法主要的用途。数组
通常状况下咱们用来输入信息的方法主要是用到以下四个浏览器
一、console.log 用于输出普通讯息
二、console.info 用于输出提示性信息
三、console.error用于输出错误信息
四、console.warn用于输出警示信息
五、console.debug用于输出调试信息
用图来讲话
console对象的上面5种方法,均可以使用printf风格的占位符。不过,占位符的种类比较少,只支持字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)四种。
console.log("%d年%d月%d日",2011,3,26); console.log("圆周率是%f",3.1415926);
%o占位符,能够用来查看一个对象内部状况
var dog = {}; dog.name = "大毛"; dog.color = "黄色"; console.log("%o", dog);
六、console.dirxml用来显示网页的某个节点(node)所包含的html/xml代码
<body> <table id="mytable"> <tr> <td>A</td> <td>A</td> <td>A</td> </tr> <tr> <td>bbb</td> <td>aaa</td> <td>ccc</td> </tr> <tr> <td>111</td> <td>333</td> <td>222</td> </tr> </table> </body> <script type="text/javascript"> window.onload = function () { var mytable = document.getElementById('mytable'); console.dirxml(mytable); } </script>
七、console.group输出一组信息的开头
八、console.groupEnd结束一组输出信息
看你需求选择不一样的输出方法来使用,若是上述四个方法再配合group和groupEnd方法来一块儿使用就能够输入各类各样的不一样形式的输出信息。
哈哈,是否是以为很神奇呀!
九、console.assert对输入的表达式进行断言,只有表达式为false时,才输出相应的信息到控制台
十、console.count(这个方法很是实用哦)当你想统计代码被执行的次数
十一、console.dir(这个方法是我常用的 可不知道比for in方便了多少)直接将该DOM结点以DOM树的结构进行输出,能够详细查对象的方法发展等等
十二、console.time 计时开始
1三、console.timeEnd 计时结束(看了下面的图你瞬间就感觉到它的厉害了)
1四、console.profile和console.profileEnd配合一块儿使用来查看CPU使用相关信息
在Profiles面板里面查看就能够看到cpu相关使用信息
1五、console.timeLine和console.timeLineEnd配合一块儿记录一段时间轴
1六、console.trace 堆栈跟踪相关的调试
上述方法只是我我的理解罢了。若是想查看具体API,能够上官方看看,具体地址为:https://developer.chrome.com/devtools/docs/console-api
一、方向键盘的上下键,你们一用就知晓。好比用上键就至关于使用上次在控制台的输入符号
二、$_命令返回最近一次表达式执行的结果,功能跟按向上的方向键再回车是同样的
上面的$_
须要领悟其奥义才能使用得当,而$0~$4则表明了最近5个你选择过的DOM节点。
什么意思?在页面右击选择审查元素
,而后在弹出来的DOM结点树上面随便点选,这些被点过的节点会被记录下来,而$0
会返回最近一次点选的DOM结点,以此类推,$1返回的是上上次点选的DOM节点,最多保存了5个,若是不够5个,则返回undefined
。
三、Chrome 控制台中原生支持类jQuery的选择器,也就是说你能够用$
加上熟悉的css选择器来选择DOM节点
四、copy经过此命令能够将在控制台获取到的内容复制到剪贴板
(哈哈 刚刚从控制台复制的body里面的html能够任意粘贴到哪, 好比记事本, 是否是以为功能很强大)
五、keys和values前者返回传入对象全部属性名组成的数据,后者返回全部属性值组成的数组
说到这,难免想起console.table方法了
六、monitor & unmonitor
monitor(function),它接收一个函数名做为参数,好比function a
,每次a
被执行了,都会在控制台输出一条信息,里面包含了函数的名称a
及执行时所传入的参数。
而unmonitor(function)即是用来中止这一监听。
看了这张图,应该明白了,也就是说在monitor和unmonitor中间的代码,执行的时候会在控制台输出一条信息,里面包含了函数的名称a
及执行时所传入的参数。当解除监视(也就是执行unmonitor时)就再也不在控制台输出信息了。
下面看一下console.log的一些技巧
一、重写console.log 改变输出文字的样式
二、利用控制台输出图片
三、指定输出文字的样式
最后说一下chrome控制台一个简单的操做,如何查看页面元素,看下图就知道了
你在控制台简单操做一遍就知道了,是否是以为很简单!