阅读更多

7顶
0踩

Web前端

转载新闻 Chrome 控制台console的用法

2015-01-13 15:58 by 正式编辑 cao345657340 评论(6) 有9359人浏览
大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方。可能大家对console.log会有一定的了解,心里难免会想调试的时候用alert不就行了,干嘛还要用console.log这么一长串的字符串来替代alert输出信息呢,下面我就介绍一些调试的入门技巧,让你爱上console.log

先的简单介绍一下chrome的控制台,打开chrome浏览器,按f12就可以轻松的打开控制台



大家可以看到控制台里面有一首诗还有其它信息,如果想清空控制台,可以点击左上角那个来清空,当然也可以通过在控制台输入console.clear()来实现清空控制台信息。如下图所示



现在假设一个场景,如果一个数组里面有成百上千的元素,但是你想知道每个元素具体的值,这时候想想如果你用alert那将是多惨的一件事情,因为alert阻断线程运行,你不点击alert框的确定按钮下一个alert就不会出现。

下面我们用console.log来替换,感受一下它的魅力。



看了上面这张图,是不是认识到log的强大之处了,下面我们来看看console里面具体提供了哪些方法可以供我们平时调试时使用。



目前控制台方法和属性有:

["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear", "getEventListeners", "undebug", "monitor", "unmonitor", "table", "$0", "$1", "$2", "$3", "$4", "$_"]
下面我们来一一介绍一下各个方法主要的用途。

一般情况下我们用来输入信息的方法主要是用到如下四个

1、console.log 用于输出普通信息

2、console.info 用于输出提示性信息

3、console.error用于输出错误信息

4、console.warn用于输出警示信息

5、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);




6、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>




7、console.group输出一组信息的开头

8、console.groupEnd结束一组输出信息

看你需求选择不同的输出方法来使用,如果上述四个方法再配合group和groupEnd方法来一起使用就可以输入各种各样的不同形式的输出信息。



哈哈,是不是觉得很神奇呀!

9、console.assert对输入的表达式进行断言,只有表达式为false时,才输出相应的信息到控制台



10、console.count(这个方法非常实用哦)当你想统计代码被执行的次数



11、console.dir(这个方法是我经常使用的 可不知道比for in方便了多少) 直接将该DOM结点以DOM树的结构进行输出,可以详细查对象的方法发展等等



12、console.time 计时开始

13、console.timeEnd  计时结束(看了下面的图你瞬间就感受到它的厉害了)



14、console.profile和console.profileEnd配合一起使用来查看CPU使用相关信息



在Profiles面板里面查看就可以看到cpu相关使用信息



15、console.timeLine和console.timeLineEnd配合一起记录一段时间轴

16、console.trace  堆栈跟踪相关的调试

上述方法只是我个人理解罢了。如果想查看具体API,可以上官方看看,具体地址为:https://developer.chrome.com/devtools/docs/console-api



下面介绍一下控制台的一些快捷键

1、方向键盘的上下键,大家一用就知晓。比如用上键就相当于使用上次在控制台的输入符号

2、$_命令返回最近一次表达式执行的结果,功能跟按向上的方向键再回车是一样的

上面的$_需要领悟其奥义才能使用得当,而$0~$4则代表了最近5个你选择过的DOM节点。

什么意思?在页面右击选择审查元素,然后在弹出来的DOM结点树上面随便点选,这些被点过的节点会被记录下来,而$0会返回最近一次点选的DOM结点,以此类推,$1返回的是上上次点选的DOM节点,最多保存了5个,如果不够5个,则返回undefined。



3、Chrome 控制台中原生支持类jQuery的选择器,也就是说你可以用$加上熟悉的css选择器来选择DOM节点



4、copy通过此命令可以将在控制台获取到的内容复制到剪贴板



(哈哈 刚刚从控制台复制的body里面的html可以任意粘贴到哪 比如记事本  是不是觉得功能很强大)

5、keys和values 前者返回传入对象所有属性名组成的数据,后者返回所有属性值组成的数组



说到这,不免想起console.table方法了



6、monitor & unmonitor
monitor(function),它接收一个函数名作为参数,比如function a,每次a被执行了,都会在控制台输出一条信息,里面包含了函数的名称a及执行时所传入的参数。

而unmonitor(function)便是用来停止这一监听。



看了这张图,应该明白了,也就是说在monitor和unmonitor中间的代码,执行的时候会在控制台输出一条信息,里面包含了函数的名称a及执行时所传入的参数。当解除监视(也就是执行unmonitor时)就不再在控制台输出信息了。

$ // 简单理解就是 document.querySelector 而已。
$$ // 简单理解就是 document.querySelectorAll 而已。
$_ // 是上一个表达式的值
$0-$4 // 是最近5个Elements面板选中的DOM元素,待会会讲。
dir // 其实就是 console.dir
keys // 取对象的键名, 返回键名组成的数组
values // 去对象的值, 返回值组成的数组


下面看一下console.log的一些技巧

1、重写console.log 改变输出文字的样式



2、利用控制台输出图片



3、指定输出文字的样式



最后说一下chrome控制台一个简单的操作,如何查看页面元素,看下图就知道了



你在控制台简单操作一遍就知道了,是不是觉得很简单!
  • 大小: 98.5 KB
  • 大小: 13.3 KB
  • 大小: 29.5 KB
  • 大小: 83.6 KB
  • 大小: 13.4 KB
  • 大小: 12.9 KB
  • 大小: 10.1 KB
  • 大小: 12.6 KB
  • 大小: 20.8 KB
  • 大小: 32.4 KB
  • 大小: 46.3 KB
  • 大小: 46.3 KB
  • 大小: 78.4 KB
  • 大小: 47 KB
  • 大小: 44.3 KB
  • 大小: 19.4 KB
  • 大小: 179.9 KB
  • 大小: 166.6 KB
  • 大小: 20.1 KB
  • 大小: 35.7 KB
  • 大小: 79.5 KB
  • 大小: 34.2 KB
  • 大小: 32.7 KB
  • 大小: 44.2 KB
  • 大小: 30.8 KB
  • 大小: 229.4 KB
来自: 博客园
7
0
评论 共 6 条 请登录后发表评论
6 楼 y8c8w8 2015-01-14 11:25
5 楼 chenxun101 2015-01-14 10:25
mark
4 楼 yixiandave 2015-01-14 10:02
只用过console.log,info,error,debug的给跪了。。。另外console.debug貌似在IE9还会报错
3 楼 Joey王 2015-01-14 09:50
Good thing, mark
2 楼 devilyard 2015-01-14 09:46
我也只用过console.log
1 楼 lizhengd1 2015-01-13 17:06
写得很好啊,收下了。一直都只会用console.log。。。。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • IdPOP3做的-QQ邮箱附件接收器

    批量下载QQ邮箱中的所有附件 procedure TFrm_QQMailRev.bt_revClick(Sender: TObject); var i,j,fNum,fCount : integer; tmp, fName : string; begin bt_rev.Enabled := false; IdMessage1.CharSet := 'gb2312'; //保证附件正文汉字的正常显示 ProgressBar1.Max := mailcount; ProgressBar1.Min := 1; fCount := 0; for i:=1 to mailcount do //遍历每一封邮件 mailcount begin IdMessage1.Clear; IdPOP31.retrieveHeader(i,IdMessage1); //得到邮件的头信息 IdPOP31.Retrieve(i,IdMessage1); //接收到邮件所有内容 tmp := IdMessage1.Body.Text; //邮件正文 Label2.Caption := {'接收邮件:'+tmp+}' 已接收:['+intToStr(i)+'] '; fNum := Pred(IdMessage1.MessageParts.Count); if not fNum<0 then for j:=0 to fNum do begin if IdMessage1.MessageParts.Items[j] is TIdAttachment then begin fCount := fCount+1; fName := filePath+intToStr(i)+intToStr(j)+TIdAttachment(IdMessage1.MessageParts.Items[fNum]).Filename; if fileExists(fName) then deletefile(fName); TIdAttachment(IdMessage1.MessageParts.Items[j]).SaveToFile(fName); //filePath+intToStr(i)+GetFileTitle(tmp)+'.rar' end; end; ProgressBar1.StepBy(1); GetRevFile; application.ProcessMessages; end; Label3.Caption := '共接收附件:['+intToStr(fCount)+'] '; IdPOP31.Disconnect; //断开连接 end;

  • 第六章 从POP3服务器提取电子邮件

    文章目录 第六章 从POP3服务器提取电子邮件从POP3服务器提取电子邮件与POP3服务器通信获取有关邮箱的信息GetMailBoxStatus()GetMessageUIDArray()GetSizeOfMessages()从邮箱提取邮件Fetch()FetchMessage() 第六章 从POP3服务器提取电子邮件 从POP3服务器提取电子邮件 与POP3服务器通信 如果拥有所需的权限,并且邮件服务器正在运行,则可以使用POP3协议从该服务器下载和处理电子邮件。通常,要与POP3服务器通信,请登录,执

  • 用Delphi实现邮件附件收发功能

    用DELPHI中的TIdPOP3  和TIdSMTP这两个组件完全能够对大部份邮件服务器进行邮件收发操作。 TIdPOP3组件简介 TIdPOP3 是用来接收邮件服务器的邮件信息到用户端的一个组件。它实现了RFC 1939协议。 在使用TIdPOP3组件时需设置它的几个成员属性。        Host :指定邮件服务器,一般为pop3邮件服务器的地址,如 pop3.126.com。

  • Delphi 使用Indy的TidPOP3接收邮件

    最近测试了下delphi的Indy控件包中的TIdPOP3接收邮件功能,由于有些邮件服务器必须支持加密方式,所以,本测试直接使用的是加密方式(SSL),如果不需要加密方式,只需要更改服务端口以及断开POP3控件的IOHandler即可。 使用中应该先连接服务器,然后在进行读取或者删除处理,之后要断开服务器。 程序代码如下: {...

  • 使用Delphi收发GMail的邮件

    GMAIL的端口和连接方式比较特殊: SMTP端口为:456 POP3端口为:995 都采用安全连接(SSL) 这些通过Indy组件就可以实现 参考代码如下: object IdConnectionInterceptOpenSSL1: TIdConnectionInterceptOpenSSL   SSLOptions.Method = sslvSSLv2   SSLOptio

  • indy10 idpop3接收邮件标题乱码

    indy10  idpop3接收邮件标题乱码 修改IdGlobal.pas [delphi] view plain copy function BytesToString(const AValue: TIdBytes; const AStartIndex: Integer;     const ALength: Integer

  • 【Delphi入门】网络服务2(POP3协议 & NMPOP3组件)

    POP3 协议应用 POP3 协议简单介绍 POP3是一种高级网络协议,全称为Post Office Protocol Version 3。使用该协议,用户使用客户端软件能够动态地,有效地访问服务器上的邮件。简而言之,POP3是一种能够让客户端软件提取在服务器中存放的邮件的协议 NMPOP3 组件 在Delphi6中位于Fastnet组件面板上的NMPOP3组件封装了POP3电子邮件协议,可以用来检索网络POP3服务器上的电子邮件信息。例如有几封邮件,删除邮件,邮件的文本信息等 NMPOP3 组件的主要属性

  • JavaMail学习笔记(四)、使用POP3协议接收并解析电子邮件(全)

      [java] view plaincopy package org.yangxin.study.jm;      import java.io.BufferedInputStream;   import java.io.BufferedOutputStream;   import java.io.File;   import java.io.Fil...

  • 跪求INDY10中idpop3和IdSSLIOHandlerSocketOpenSSL使用SSL连接Gmail用法,该怎么解决

    跪求INDY10中idpop3和IdSSLIOHandlerSocketOpenSSL使用SSL连接Gmail用法 郁闷3天了, 就是不知道咋弄,网上该搜的都搜索了. C/C++ code // 指定新邮件的地址等信息 IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method = sslvTLSv1; //IdSSLIOHandl

  • 弥补 idPop3 缺少的 Subject 只是这部分的处理.

    在收到163.com等一些邮件的时候 subject 通常是下面的形式, =?gb2312?B?Z290b21vYmlsZQ==?=  这个翻译过来就是 pic test 只需要一个函数就可以处理好了!indy也就不再残缺了.. //idPop3缺少的只是这部分的处理. Subject// this function by Chris G黱ther and Sergio Kes

Global site tag (gtag.js) - Google Analytics