专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
程序员的那些事  ·  北京大学出的第二份 DeepSeek ... ·  10 小时前  
程序员的那些事  ·  GPU:DeepSeek ... ·  10 小时前  
程序员的那些事  ·  印度把 DeepSeek ... ·  3 天前  
程序猿  ·  “未来 3 年内,Python 在 AI ... ·  5 天前  
程序员小灰  ·  DeepSeek做AI代写,彻底爆了! ·  5 天前  
51好读  ›  专栏  ›  SegmentFault思否

Javascript 调试命令——你只会 Console.log() ?

SegmentFault思否  · 公众号  · 程序员  · 2018-01-26 08:00

正文

Console 对象提供对浏览器控制台的接入(如:Firefox 的 Web Console)。不同浏览器上它的工作方式是不一样的,但这里会介绍一些大都会提供的接口特性。 Console对象可以在任何全局对象中访问,如 Window,WorkerGlobalScope 以及通过属性工作台提供的特殊定义。 它被浏览器定义为 Window.Console,也可被简单的 Console 调用。

最常用的方法就是 Console.log() ,就是在控制台输出内容。刚开始学前端的时候看到大家都是用的 Console.log() ,几乎没有见过 Console 的其他用法,难道 Console 真的没有别的用法了?查了一下后发现 Console 还是非常强大的,至于为什么很少看到有人用可能是因为用过都删掉了吧。在此记录一下 Console 的其他用法。

注意:因为 Console 对象提供对浏览器控制台的接入 所以在不同浏览器中的支持及表现形式可能不太一样,但是调试内容只有我们开发者会看,所以保证开发环境能用这些方法就可以了,下面演示全部都为 Chrome 上面的效果。

分类输出

不同类别信息的输出。

  1. console.log('文字信息');

  2. console.info('提示信息');

  3. console.warn('警告信息');

  4. console.error('错误信息');

分组输出

使用 Console.group() Console.groupEnd() 包裹分组内容。

还可以使用 Console.groupCollapsed() 来代替 Console.group() 生成折叠的分组。

  1. console.group('第一个组');

  2.    console.log("1-1");

  3.    console.log("1-2");

  4.    console.log("1-3");

  5. console.groupEnd();

  6. console.group('第二个组' );

  7.    console.log("2-1");

  8.    console.log("2-2");

  9.    console.log("2-3");

  10. console.groupEnd();

Console.group() 还可以嵌套使用

  1. console.group('第一个组');

  2.    console.group("1-1");

  3.        console.group("1-1-1");

  4.            console.log('内容');

  5.        console.groupEnd();

  6.    console.groupEnd();

  7.    console.group("1-2");

  8.        console.log('内容');

  9.        console.log('内容');

  10.        console.log('内容');

  11.    console.groupEnd();

  12. console.groupEnd();

  13. console.groupCollapsed('第二个组');

  14.    console. group("2-1");

  15.    console.groupEnd();

  16.    console.group("2-2");

  17.    console.groupEnd();

  18. console.groupEnd();

表格输出

使用 console.table() 可以将传入的对象,或数组以表格形式输出。适合排列整齐的元素。

  1. var Obj = {

  2.    Obj1: {

  3.        a: "aaa",

  4.        b: "bbb",

  5.        c: "ccc"

  6.    },

  7.    Obj2: {

  8.        a: "aaa",

  9.        b: "bbb",

  10.        c: "ccc"

  11.    },

  12.    Obj3: {

  13.        a: "aaa",

  14.        b: "bbb",

  15.        c: "ccc"

  16.    },

  17.    Obj4: {

  18.        a: "aaa",

  19.        b: "bbb",

  20.        c: "ccc"

  21.    }

  22. }

  23. console.table(Obj);

  24. var Arr = [

  25.    ["aa","bb","cc"],

  26.    ["dd","ee","ff"],

  27.    ["gg","hh","ii"],

  28. ]

  29. console.table(Arr);

查看对象

使用 Console.dir() 显示一个对象的所有属性和方法。

在Chrome中 Console.dir() Console.log() 效果相同。

  1. var CodeDeer = {

  2.    nema: 'CodeDeer',

  3.    blog: 'www.xluos.com',

  4. }

  5. console.log("console.dir(CodeDeer)");

  6. console.dir(CodeDeer);

  7. console.log("console.log(CodeDeer)");

  8. console.log(CodeDeer);

查看节点

使用 Console.dirxml() 显示一个对象的所有属性和方法。

在Chrome中 Console.dirxml() Console.log() 效果相同。

百度首页logo的节点信息

条件输出

利用 console.assert() ,可以进行条件输出。

  • 当第一个参数或返回值为真时,不输出内容

  • 当第一个参数或返回值为假时,输出后面的内容并抛出异常

  1. console.assert(true, "你永远看不见我");

  2. console.assert((function() { return true;})(), "你永远看不见我");

  3. console.assert(false, "你看得见我");

  4. console.assert((function() { return false;})(), "你看得见我");

计次输出

使用 Console.count() 输出内容和被调用的次数

  1. (function () {

  2.    for(var i = 0; i < 3; i++){

  3.        console.count("运行次数:");

  4.    }

  5. })()

追踪调用堆栈

使用 Console.trace() 来追踪函数被调用的过程,在复杂项目时调用过程非常多,用这个命令来帮你缕清。

  1. function add(a, b) {

  2.    console.trace("Add function");

  3.    return a + b;

  4. }

  5. function add3(a, b) {

  6.    return add2(a, b);

  7. }

  8. function add2(a, b) {

  9.    return add1(a, b);

  10. }

  11. function add1(a, b) {

  12.    return add(a, b);

  13. }

  14. var x = add3(1, 1);







请到「今天看啥」查看全文