JavaScript 控制台 API 完全指南:从日志输出到性能分析

作者:安全边界

时间:2026-10-29

浏览:514

本文详细介绍 JavaScript 中 console 对象的常用方法,包括 log、warn、error 等基础输出,以及占位符格式化、分组显示、对象属性查看、断言判断和调用轨迹追踪。重点讲解 console.time 计时器和 console.profile 性能分析器的使用,帮助开发者高效进行前端调试与性能优化。

文章目录

Console 基础输出命令与占位符

一、显示信息的命令

console.log(); //控制台输入 网页中不会输出

console.info(); //一般信息

console.debug(); //除错信息

console.warn(); //警告提示

console.error(); //错误提示

console.log() 常用于替代 alert() 或 document.write()。例如,在网页代码中执行 console.log("Hello World"); 会在浏览器控制台输出结果,而不会在网页页面中直接显示内容。

Console 基础输出命令与占位符

Console 基础输出命令与占位符

我们在代码中插入如下代码:

console.info( "这是info" );

console.debug( "这是debug" );

console.warn( "这是warn" );

console.error( "这是error" );

加载后打开控制台会看到像下面这样:

Console 基础输出命令与占位符

二、占位符

上述 console 对象的五种方法均支持 printf 风格的占位符,但支持的类型有限,仅包括字符(%s)、整数(%d 或 %i)、浮点数(%f)以及对象(%o)。例如:

console.log( "%d年%d月%d日" , 2011,3,26 );

console.log( "圆周率是%f" , 3.1415926 );

Console 基础输出命令与占位符

%o 占位符可用于查看对象内部结构。例如,定义如下对象:

var dog = {} ;

dog.name = "大毛";

dog.color = "黄色";

然后,对它使用 %o 占位符:

console.log( "%o" , dog );

Console 基础输出命令与占位符

三、分组显示


console.group(); console.groupEnd(); (这两个方法是成对使用的)
  console.group("第一组信息");
    console.log("第一组第一条");
    console.log("第一组第二条");
  console.groupEnd();
  console.group("第二组信息");
    console.log("第二组第一条");
    console.log("第二组第二条");
  console.groupEnd();

Console 基础输出命令与占位符

对象属性查看与 DOM 节点调试

四、console.dir();(显示某一个对象的所有属性和方法)

例如,为第二节的 dog 对象添加一个 bark() 方法,然后使用 dir() 显示出来:

dog.bark = function(){ alert( "汪汪汪" ); };

console.dir( dog );

Console 基础输出命令与占位符

五、console.dirxml();(获取某个节点所包含的所有html/xml代码)

var table = document.getElementById("table1"); //获取节点

console.dirxml( table ); //显示节点的所有代码

Console 基础输出命令与占位符

断言判断与函数调用轨迹追踪

六、console.assert();(用来判断一个表达式或变量是否为真。如果结果为否,则在控制台输出一条相应信息,并且抛出一个异常)

var result = 0;

console.assert( result ); //false

var year = 2000;

console.assert( year == 2011 ); //false

Console 基础输出命令与占位符

七、console.trace();(用来追踪函数的调用轨迹)

/*一个加法函数*/

function add( a,b ){

return a+b;

  }

我想知道这个函数是如何被调用的,在其中加入console.trace()方法就可以了:

function add( a,b ){

console.trace();

return a+b;

  }

假定这个函数的调用代码如下:

var x = add3( 1,1 );

function add3( a,b ){ return add2(a,b); }

function add2( a,b ){ return add1( a,b ); }

function add1( a,b ){ return add( a,b ); }

运行后,会显示add()的调用轨迹,从上到下依次为add()、add1()、add2()、add3()

Console 基础输出命令与占位符

代码计时与性能分析器使用

八、console.time();和console.timeEnd();(用来显示代码的运行时间)


  console.time( "计时器一" );

  for( var i=0;i<1000;i++ ){

    for(var j=0;j<1000;j++){}

  }

  console.timeEnd( "计时器一" );

Console 基础输出命令与占位符

九、性能分析

性能分析(Profiler)旨在分析程序各部分的运行时间,找出瓶颈所在,使用的方法是console.profile();

假定有一个函数Foo(),里面调用了另外两个函数funcA()和funcB(),其中funcA()调用10次,funcB()调用1次。


  function Foo(){

    for(var i=0;i<10;i++){funcA(1000);}

    funcB(10000);

  }

  function funcA(count){

    for(var i=0;i<count;i++){}

  }

  function funcB(count){

    for(var i=0;i<count;i++){}

  }

然后分析 “Foo();” 的运行性能:


  console.profile('性能分析器一');

  Foo();

  console.profileEnd();

Console 基础输出命令与占位符

标题栏提示,一共运行了12个函数,共耗时2.656毫秒。其中funcA()运行10次,耗时1.391毫秒,最短运行时间0.123毫秒,最长0.284毫秒,平均0.139毫秒;funcB()运行1次,耗时1.229ms毫秒。

除了使用 “console.profile();”方法,firebug还提供了一个"概况"(Profiler)按钮。第一次点击该按钮,"性能分析"开始,你可以对网页进行某种操作(比如ajax操作),然后第二次点击该按钮,"性能分析"结束,该操作引发的所有运算就会进行性能分析。

Console 基础输出命令与占位符

控制台属性菜单与 AJAX 监控

十、属性菜单

控制台面板的名称后面,有一个倒三角,点击后会显示属性菜单。

Console 基础输出命令与占位符

默认情况下,控制台只显示Javascript错误。如果选中Javascript警告、CSS错误、XML错误都送上,则相关的提示信息都会显示。

这里比较有用的是显示"XMLHttpRequests" 也就是显示ajax请求。选中以后,网页的所有ajax请求,都会在控制台面板显示出来。

比如,点击一个YUI示例,控制台就会告诉我们,它用ajax方式发出了一个GET请求,http请求和响应的头信息和内容主体,也都可以看到。

Console 基础输出命令与占位符

以上所述就是本文的全部内容了,希望大家能够喜欢。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章