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中。