Node.js中的全局对象之console控制台对象

 2015年06月16日    3155     声明


控制台对象console是Node.js中的Global全局对象之一,用于打印标准输出stdout和标准错误stderr。全局对象在所有模块中都可以使用,console对象也不例外,无需require引用,即可直接使用。

  1. stdout中打印一行:console.log([data][, ...])、console.info([data][, ...])
  2. stderr中打印一行:console.error([data][, ...])、console.warn([data][, ...])
  3. 打印objectstderr中:console.dir(obj[, options])
  4. 计时器功能:console.time(label)、console.timeEnd(label)
  5. 打印栈跟踪到stderr: console.trace(message[, ...])
  6. 断言表达式:console.assert(value[, message][, ...])


1. 向stdout中打印一行:console.log([data][, ...])、console.info([data][, ...])

console.log()方法用于向stdout中打印一行,console.info()是其别名方法。log方法可接收多个参数,其格式化输出与util.format方法类似。示例如下:

console.log('a string: ', 'sss'); 	// a string:  sss
console.log('12%d45%d', 3, 6);		//123456


2. 向stderr中打印一行:console.error([data][, ...])、console.warn([data][, ...])

console.error()方法与console.log()方法类似,但会打印到stderr中。console.warn()是其别名方法。示例如下:

console.error('a string: ', 'sss'); 	// a string:  sss
console.error('12%d45%d', 3, 6);		//123456


3. 打印objectstderr中:console.dir(obj[, options])

console.dir()方法会调用util. inspect方法,将对象格式化后打印到stdout中,但此方法会忽略object上自定义的inspect()方法。示例如下:

console.dir(global, {showHidden:true, depth:3});


4. 计时器功能:console.time(label)、console.timeEnd(label)

console.time()方法用于标记一个时间点,console.timeEnd()方法用于结束记时,并输出所用时间。这两个方法在调试程序,统计程序执行时长时很有用。示例如下:

console.time('100-elements');
for (var i = 0; i < 100; i++) { 
    console.log(i); 
} 
console.timeEnd('100-elements'); 
//100-elements: 9ms


5. 打印栈跟踪到stderr: console.trace(message[, ...])

console.trace()方法用于格式化错误信息及当前位置的栈跟踪信息,并向stderr中打印Trace:。示例如下:

console.trace('出错了');

//输出如下:
Trace: 出错了
    at Object.……


6. 断言表达式:console.assert(value[, message][, ...])

console.assert()方法与assert.ok()方法类似,用于断言表达式,但console.assert()方法会调util.format方法方法对提示信息进行格式化。示例如下:

console.assert(1<0, '%d不小于%d', 1, 0); 
//以上代码输出为
AssertionError: 1不小于0 
  at Console.assert (console.js:102:23) 
  ……