目录:

一、什么是 Console

二 、什么浏览器支持 Console
三、为什么不直接使用 alert 或自己写的 log
四、console.log(object[,object,.....])
五、console.debug,info,warn,error
六、console.assert(expression[, object, ...])
七、console.clear()
八、console.dirxml(node)
九、console.trace()
十、console.group(object[, object, ...]), groupCollapsed, groupEnd
十一、console.time(name)/console.timeEnd(name)
十二、console.profile(name)/console.profileEnd()
十三、console.count([title])
十四、console.table(data)
十五、console.dir(function)
十五、tab键代码补全
十五、百度首页的彩蛋!

一  什么是 Console

Console 是用于显示 JS和 DOM 对象信息的单独窗口。并且向 JS 中注入1个 console 对象,使用该对象 可以输出信息到 Console 窗口中。

二  什么浏览器支持 Console

很多人可能都知道 Chrome 和 FireFox(FireBug)中都支持 Console。而其他浏览器都支 持不好。比如 IE8 自带的开发工具虽然支持 Console,但功能比较单调,显示对象的时候都是显示 [Object,Object],而且不能点击查看对象里面的属性。IE6、IE7 虽然可以安装 Developer Toolbar,但也 不支持 console。Safari、Opera 都支持 Console,但使用上都没有 FireBug和 Chrome 的方便。 现在firebug推出了 firebuglite工具,可以让所有浏览器都支持Console功能,而且使用上和FireBug 几乎一样。详见http://getfirebug.com/firebuglite

三  为什么不直接使用 alert 或自己写的 log

使用 alert 不是一样可以显示信息,调试程序吗?alert 弹出窗口会中断程序, 如果要在循环中显示信息,手点击关闭窗口都累死。而且 alert 显示对象永远显示为[object ]。 自己写的 log 虽然可以显示一些 object 信息,但很多功能支持都没有 console 好,看完后面 console 的介绍就知道了。
(部分比较鸡肋的方法没有列出来,用粗蓝标出来的是常用的方法)

四、console.log(object[,object,.....])

Console.log 是最简单输出信息到 console 窗口的方法,支持多个参数,该方法会把 这些参数组合在一起显示
我们首先来写一段倒计时的代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>倒计时</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 </head>
<body>
  <h1>倒计时:<span>10</span></h1>
  <script type="text/javascript">
    $(document).ready(function(){
        var num = $("h1 span").first();
        var i = 9;
        var interval = setInterval(function(){
            num.text(i);
            i--;
            console.log("当前数值:"+i);
            if(i < 0){
                clearInterval(interval);
            }
        },1000);
    });
 </script>
</body>
</html>
我们在line:16加入console.log("当前数值:"+i); 那么在控制台中将输出每次i的值:

log 方法第一个参数支持类似 C 语言 printf 字符串替换模式,Log 支持下面几种替换模式:

  • %s  代替字符串
  • %d  代替整数
  • %f  代替浮点值
  • %o  代替 Object

例如,我们输出一个时间日期:

console.log(,,);

比如,我们要把月份“6月”变成“06月”,那么可以使用“%s”,在传入参数的时候要用引号:

console.log(,);

五  console.debug,info,warn,error

这 4 种方法与 log 方法使用一模一样,只是显示的图标和文字颜色不一样.

六  console.assert(expression[, object, ...])

assert 方法类似于单元测试中的断言,当 expression 表达式为 false 的时候,输出后面的信息,e.g:
 
注:assert 方法在 firebuglite 不支持,Chrome 和 FireBug 支持

七  console.clear()

该方法清空 console 中的所有信息 (Chrome中不支持)

八  console.dirxml(node)

把 html 元素的html 代码打印出来,等同于log.

九  console.trace()

trace 方法可以查看当前函数的调用堆栈信息,即当前函数是如何调用的
十  console.group(object[, object, ...]), groupCollapsed, groupEnd
这 3 个函数用于把 log 等输出的信息进行分组,方便阅读查看。
groupCollapsed 方法与 group 方法一样,只是显示的分组默认是折叠的.
 
注意:如果后面不跟console.groupEnd(),则第二个分组默认是第一个分组的子节点。

十一  console.time(name)/console.timeEnd(name)

我们经常需要测试 js 函数的执行时间,可能我们自己写代码在第1 条语句和 最后 1 条语句取当前时间相减。这组函数其实就实现了这样的功能,time(name)根据 name 创建 1 个新 的计时器。timeEnd(name)停止给定name 的计时器,并显示时间。
下面给个空的for循环,打印0-1000的i的值,用时124.61ms:

十二  console.profile(name)/console.profileEnd()

这组方法用于打开浏览器的分析器,用于分析这组函数之间的 js 执行情况
注:firebuglite 不支持 profile 功能,Chrome 支持 profile,但分析的内容不详。

十三  console.count([title])

count 方法用于统计当前代码被执行过多少次,title 参数可以在次数前面输出额外的标题以帮助阅读。e.g:
$(function(){
   test();
   test();
   test();
   test();
});
 
var test = function(){
    console.count("test被执行次数:");
};

在Chrome中的结果,会打印出累积次数:

而在fireBug中只会显示最后一次最终的次数:test被执行次数:4。

十四  console.table(data)

table 方法把data 对象用表格的方式显示出来,这在显示数组或者格式一样的JSON 对象的时候非常有用。
注:table 只支持 FireBug,而且是在 firebug1.6+版本后才有。

此内容将单独开一篇博客,请见《利用console.table()做高级JS调试、Console用法总结(2)》

十五  console.dir(function)

dir方法是把列出对象的所有方法。比如,我们显示console对象下都些什么方法:
console.dir(console);

十五  tab键代码补全

此功能只针对fireBug下,在Chrome下自带代码提示功能
在fireBug下输入co再按Tab键,将会出现代码提示:

而在Chrome下边输入边出现代码提示,很强大。

十五  百度首页的彩蛋!

打开百度首页,查看Javascript输出控制台,呵呵,你发现了什么?百度的招聘启事:

console调试--转的更多相关文章

  1. vConsole--针对手机网页的前端 console 调试面板。

    一个针对手机网页的前端 console 调试面板. 简介 vConsole 是一个网页前端调试面板,专为手机 web 页面量身设计,帮助开发者更为便捷地进行开发调试工作. 手机预览 http://we ...

  2. 推荐几个不错的console调试技巧

    在我们的日常前端开发中,使用最频繁的莫过于使用console.log在浏览器的控制台中打印出我们需要调试的信息,但是大部分人可能跟之前的我一样,没有意识到其实console除了log方法以外,还有很多 ...

  3. 前台console调试技巧

    前台console调试技巧 一.console.log() 二.console.warn() 三.console.dir() 四.console.table() 五.console.assert() ...

  4. JS 灵活使用 console 调试

    前言: Web 开发中最常用的调试就是 console.log(),console 除了 本身 log() 方法外,还有其他很多方法. console.log() console.log() 有许多意 ...

  5. pycharm Python Console调试 & django 调试

    1.设置断点,然后debug     2.如果在运行中想修改变量,可以直接在pycharm中修改 如将列表的 13改成3,然后选中 Excuting Selection in console     ...

  6. 你不知道的console调试

    概述 浏览器的开发者工具我们经常用,console.log我们也经常用,但是console还有其它一些方便调试的命令,我总结了几个常用的记录在下面,供以后开发时参考,相信对其他人也有用. 获取js执行 ...

  7. console 调试技巧

    前言 如果统计一番前端最常用的方法,那么 console.log 一定位列其中.无论你写的是原生 JS 亦或者是 JQuery.Vue等等,调试之时,都离不开 console.log 方法.但是,co ...

  8. console调试技巧

    1.console.log() 我们经常会使用console.log来打印出某个变量的值或者某个实体对象,也可以传入多个变量参数,它会按照传入顺序进行打印: 1. 传入一个变量 const a = 1 ...

  9. Chrome浏览器 Console调试台的简单使用

    打开调试台 方法1:在chrome浏览器中打开网页,按下F12,点击下图框选内容. 方法2: 浏览器中鼠标右键选择查看网页源代码后,再按上图操作.  调试台的功能 (因为是第一次使用这个调试台,只能罗 ...

随机推荐

  1. delphi对ini文件的操作(转载 万一)

    ini 文件操作记要(1): 使用 TIniFileunit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Gr ...

  2. 调侃Cookie

    近期看着某些小朋友那琢急的学习心态,瞬间发文一篇,谨此以助小朋友早日有成! 闲话不扯远,实话见真言,晃悠许久觉得开头还是谈谈Cookie这只菜篮,而且是一只私家菜篮,为啥说它是一只菜篮呢,各位看官必定 ...

  3. SRM 584 DIV1

    A 简单的差分约束模型 , 因为d是定值 , 所以也可以按最短路理解 , trick是不能把圈算进去. #define maxn 55 class Egalitarianism { public: i ...

  4. NSTemporaryDirectory 临时文件

    唯一标识 : NSString*identifier=[[NSProcessInfoprocessInfo]globallyUniqueString]; 创建临时文件路径: NSString *fil ...

  5. powershell利用winform批量执行tsql语句

    #加载.net的winform模块 [Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") $app= ...

  6. 使用PHPExcel导出数据

    最近要求做增加客流数据等导出为Excel的功能,phpExcel包功能强大,根据实际需求,我只学习了简单的功能. 安装PHPExcel 在composer.json中添加: "require ...

  7. mysql如何删除重复记录

    方法有很多,除了最简便的, alter ignore table 表名  add UNIQUE index(字段名); 然后再将索引drop掉,这个方法外. 更加中规中矩的方法也是有的.. 比如我在网 ...

  8. 【safari挖的那些坑】iOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决

    通常 iOS下时间错误表现形式 问题一: 这个界面运用了大量的日期类型的计算,当我们用JavaScript实例化一个日期对象时,我们可以这样用: var date =new Date(); 上面这段代 ...

  9. JeeSite 企业信息管理系统基础框架

    1. JeeSite概述 1.1. 简介 JeeSite是一个开源的企业信息管理系统基础框架.主要定位于“企业信息管理”领域,可用作企业信息管理类系统.网站后台管理类系统等.JeeSite是非常强调开 ...

  10. 解决Item控件抢占焦点

    http://www.imooc.com/learn/372 在抢占焦点的控件加上 方法一: android:focusable="false" 方法二: 在外界布局上 andro ...