美文网首页Front End
[FE] console对象

[FE] console对象

作者: 何幻 | 来源:发表于2017-08-11 11:25 被阅读34次

1. 实例方法

Console规范中,console总共有17个方法,
以下是console对象的IDL

[Exposed=(Window,Worker,Worklet)]
namespace console { // but see namespace object requirements below
    // Logging
    void assert(optional boolean condition = false, any... data);
    void clear();
    void count(optional DOMString label = "default");
    void debug(any... data);
    void error(any... data);
    void info(any... data);
    void log(any... data);
    void table(any tabularData, optional sequence<DOMString> properties);
    void trace(any... data);
    void warn(any... data);
    void dir(any item, optional object? options);
    void dirxml(any... data);

    // Grouping
    void group(any... data);
    void groupCollapsed(any... data);
    void groupEnd();

    // Timing
    void time(optional DOMString label = "default");
    void timeEnd(optional DOMString label = "default");
};

在Chrome 59.0.3071.115 中,console总共有17+7个方法,

assert clear count debug dir dirxml error group groupCollapsed groupEnd info log markTimeline memory profile profileEnd table time timeEnd timeStamp timeline timelineEnd trace warn

在Safari 10.1.1 (12603.2.4) 中,有17+4个,

assert clear count debug dir dirxml error group groupCollapsed groupEnd info log profile profileEnd table takeHeapSnapshot time timeEnd timeStamp trace warn

在Firefox 55.0.1 中,有17+4个,

assert clear count debug dir dirxml error exception group groupCollapsed groupEnd info log profile profileEnd table time timeEnd timeStamp trace warn

2. Logging

2.1 assert

功能:
如果断言失败,就在控制台上打印消息,否则就略过。

语法:

console.assert(assertion, obj1 [, obj2, ..., objN]);
console.assert(assertion, msg [, subst1, ..., substN]); // c-like message formatting

参数解释:
(1)assertion,是任意的布尔值表达式,如果是一个假值,就在控制台上显示消息。
(2)obj1 ... objN,控制台上可以输出一系列对象。
(3)msg,一个模板字符串,其中可以包含一些表示格式的字符。
(4)subst1 ... substN,一些用于替换msg中格式字符的对象。

注:
(1)console.assert可用于Web Workers中。
(2)console.assert在node中的实现与浏览器不同,
在浏览器中,调用console.assert(false)会在控制台上打印一条出错消息,但是不会影响后续代码执行
在node中,调用console.assert(false)会抛出AssertionError异常
(3)msg是一个模板字符串,其中可以包含如下格式字符,
%s,它的替换者将被转换为字符串,调用ToString(element)
%d%i,它的替换者将被转换为整数,调用parseInt(element, 10)
%f,它的替换者将被转换为浮点数,调用parseFloat(element)
%c,它的替换者将被添加样式,例如,

console.log('%c error %c message ',
'color:#fff;background:red;',
'color:white;background:#ccc;')

此外,还有%o表示optimally useful formatting
%O表示generic JavaScript object formatting
可参考Common object formats

2.2 clear

功能:
清空控制台。

语法:

console.clear();

2.3 count

功能:
打印调用次数。

语法:

console.count([label]);

参数解释:
label,是一个可选的字符串,
如果没有提供,就打印当前行的调用次数,否则就打印指定label的调用次数。

2.4 debug

console.log

2.5 error

功能:
在控制台上打印一条错误消息。

语法:

console.error(obj1 [, obj2, ..., objN]);
console.error(msg [, subst1, ..., substN]);

参数解释:
console.assert

注:
console.error可用于Web Workers中。

2.6 info

功能:
在控制台上打印一条information消息。

语法:

console.info(obj1 [, obj2, ..., objN]);
console.info(msg [, subst1, ..., substN]);

参数解释:
console.assert

注:
(1)console.info可用于Web Workers中。

2.7 log

功能:
在控制台上打印一条日志。

语法:

console.log(obj1 [, obj2, ..., objN]);
console.log(msg [, subst1, ..., substN]);

参数解释:
console.assert

注:
console.log可用于Web Workers中。

2.8 table

功能:

语法:

console.table(data [, columns]);

参数解释:
(1)data,必须是一个数组或者对象
(2)columns,可选,一个数组,用于表示列名。

注:
(1)console.table可用于Web Workers中。
(2)如果data是一个数组,则第一列的内容是索引,第二列的内容是相应的值,
如果data是一个对象,则第一列的内容是属性名,第二列的内容是相应的属性值。
(3)data还可以是一个复合对象,即,二维数组,对象数组,值为数组的对象,值为对象的对象,
此时,table会变成多列(>2),
对于二维数组,对象数组,第一列的内容为索引,
后面各列的名字为索引(二维数组)或属性名(对象数组),其内容为相应的值。
对于值为数组的对象,值为对象的对象,第一列的内容为属性名,
后面各列的名字为索引(值为数组的对象)或属性名(值为对象的对象),其内容为相应的值。

2.9 trace

功能:
在控制台上打印调用栈。

语法:

console.trace();

2.10 warn

功能:
在控制台上打印一条警告。

语法:

console.warn(obj1 [, obj2, ..., objN]);
console.warn(msg [, subst1, ..., substN]);

参数解释:
console.assert

注:
console.warn可用于Web Workers中。

2.11 dir

功能:
在控制台上以交互式的方式,打印指定对象的属性。

语法:

console.dir(object);

参数解释:
object,一个js对象。

注:
console.dir可用于Web Workers中。

2.11 dirxml

功能:
在控制台上以交互式的方式,打印指定xml/html元素的树型结构。

语法:

console.dirxml(object);

参数解释:
object,一个js对象。

3. Grouping

3.1 group

功能:
在控制台上增加一个缩进层次,打印一条消息,
后续所有消息,都在这个新缩进层次中输出。

语法:

console.group([label]);

参数解释:
label,可选,缩进层的名字。

注:
console.group可用于Web Workers中。

3.2 groupCollapsed

功能:
console.group
不同的是,缩进层默认折叠,用户需要手动展开。

语法:

console.groupCollapsed([label]);

参数解释:
label,缩进层的名字。

注:
console.groupCollapsed可用于Web Workers中。

3.3 groupEnd

功能:
退出当前的缩进层次,回到上一层。

语法:

console.groupEnd();

注:
console.groupEnd可用于Web Workers中。

4. Timing

4.1 time

功能:
启动一个计时器,可以用来跟踪某个任务。
每个计时器可以给定一个名字,每个页面可以至少包含10000个计时器,
使用指定的计时器名调用console.timeEnd,会在控制台输出该计时器中记录的时间,单位是毫秒。

语法:

console.time(label);

参数解释:
label,计时器的名字,用于唯一标识该计时器。

注:
console.time可用于Web Workers中。

4.2 timeEnd

功能:
停止指定的计时器,并在控制台上输出该计时器中记录的时间,单位是毫秒。

语法:

console.timeEnd(label);

参数解释:
label,指定计时器的名字。

注:
console.timeEnd可用于Web Workers中。


参考

MDN - Console
Console - Living Standard

相关文章

  • [FE] console对象

    1. 实例方法 Console规范中,console总共有17个方法,以下是console对象的IDL, 在Chr...

  • [FE] console.log陷阱

    在前端开发中,我们经常使用console.log在浏览器控制台上打印日志,可是当打印一个引用类型的对象时,可能会遇...

  • console对象

    console对象是 JavaScript 的原生对象,它有点像 Unix 系统的标准输出stdout和标准错误s...

  • JavaScript Console知识点

    =============== 1 问题 Console是什么? console是什么 Console 对象用于 ...

  • JavaScript Console 对象,常用

    Console 对象用于 JavaScript 调试。 1.console.log() 2.console.cou...

  • console 对象与控制台

    console 对象与控制台 console 对象的静态方法 console.log方法用于在控制台输出信息。它可...

  • console对象 | Object对象 | 对象探寻之

    参考链接:[1]阮一峰,console对象 [2]阮一峰,Object对象 一.console对象 1.con...

  • 前端console对象详解

    console对象在前端调试中必不可少,但是大多数人都只会用console对象的log()方法。但console对...

  • 数学对象

    数学对象 console.log(Math.PI) console.log(Math.E) console.log...

  • console对象介绍

    工作中console可能是用来debug的最频繁的原生方法了,它不仅仅非常实用,而且还有一些有趣的东西。 cons...

网友评论

    本文标题:[FE] console对象

    本文链接:https://www.haomeiwen.com/subject/rwclrxtx.html