Node.js的控制台console

打印 上一主题 下一主题

主题 705|帖子 705|积分 2115

新书速览|Vue.js+Node.js全栈开发实战-CSDN博客
《Vue.js+Node.js全栈开发实战(第2版)(Web前端技术丛书)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com)
利用好Node.js提供的console控制台和debug,可以有效地辅助开发和定位bug。在Node.js中,console代表控制台,可以通过console对象的各种方法向控制台进行标准输出。
3.3.1  console对象下的各种方法

在REPL交互式运行环境中输入console,可以看到console对象下各种方法组成的一个数组,如图3.7所示。

图3.7  console对象的方法

3.3.2  console.log()方法

console.log()方法用于标准输出流的输出,也就是在命令行中表现一行信息,比方:
console.log('node.js is powerful')
无论是在REPL环境中运行这行代码,还是作为Node.js文件实行这行代码,都可以看到在命令行中输出“node.js is powerful”字样。
console.log()方法并没有对参数的个数进行限定,当传递多个参数时,命令行输出将以空格分隔这些参数,比方:
console.log('node.js','is','powerful');
运行之后,同样会在命令行输出“node.js is powerful”字样,这3个单词也依旧是以空格分隔开来的。
console.log()方法也可以利用占位符来定义输出的格式。比方,%d表示数字,%s表示字符串。
提示:假如需要对反面的多个参数都定义格式,就要逐个进行设置,并且输出时将不会以空格分隔;假如没有预定义格式,将会正常输出。
示例代码如下:
【代码3-7】
  1. 01  console.log('%s%s', 'node.js', 'is', 'powerful');
  2. 02  // node.jsis powerful
  3. 03  console.log('%s%s%s', 'node.js', 'is', 'powerful');
  4. 04  // node.jsispowerful
  5. 05  console.log('%d', 'node.js');
  6. 06  // NaN
  7. 07  console.log('%d', 'node.js', 'is', 'powerful');
  8. 08  // NaN is powerul
复制代码
需要留意,在这一段代码中,当利用%d占位符后,假如对应的参数不是数字,则控制台将会输出“NaN”。
3.3.3  console.info()、console.warn()和console.error()方法

console.info()、console.warn()以及console.error()方法的利用和console.log()一致,将3.3.2小节的代码换成console.info()、console.warn()、console.error()方法,将得到同样的结果:
【代码3-8】
  1. 01  console.warn('%s%s', 'node.js', 'is', 'powerful');
  2. 02  // node.jsis powerful
  3. 03  console.warn('%s%s%s', 'node.js', 'is', 'powerful');
  4. 04  // node.jsispowerful
  5. 05  console.info('%d', 'node.js');
  6. 06  // NaN
  7. 07  console.info('%d', 'node.js', 'is', 'powerful');
  8. 08  // NaN is powerul
  9. 09  console.error('%d', 'node.js');
  10. 10  // NaN
  11. 11  console.error('%d', 'node.js', 'is', 'powerful');
  12. 12  // NaN is powerul
复制代码
3.3.4  console.dir()方法

console.dir()方法用于将一个对象的信息输出到命令行。如下代码将定义一个简单的对象。
【代码3-9】
  1. 01  const obj = {
  2. 02  name: 'node.js',
  3. 03      get: function() {
  4. 04        console.log('get');
  5. 05      },
  6. 06      set: function() {
  7. 07        console.log('set');
  8. 08      }
  9. 09  }
  10. 10  console.dir(obj);
复制代码
在REPL交互式运行环境中运行这段代码,可以看到命令行中输出这个对象的信息,如图3.8所示。

图3.8  console.dir()方法输出对象信息

3.3.5  console.time()和console.timeEnd()方法

console.time()和console.timeEnd()方法主要用于统计一段代码的运行时间。console.time()方法置于代码起始处,console.timeEnd()方法置于代码末端处。只需要向这两个方法传递同一个参数,就可以在命令行中输出以毫秒计的代码运行时间。如下代码统计了两个循环实行后的时间以及各个循环分别利用的时间。
【代码3-10】
  1. 01  console.time('total time');
  2. 02  console.time('time1');
  3. 03  for(var i =0; i< 10000; i++) {
  4. 04  }
  5. 05  console.timeEnd('time1');
  6. 06  console.time('time2');
  7. 07  for(var i =0; i< 100000; i++) {
  8. 08  }
  9. 09  console.timeEnd('time2');
  10. 10  console.timeEnd('total time');
复制代码
将这段代码生存为名为“time.js”的文件。利用node time命令运行这个文件,可以在命令行中看到各个循环的利用时间统计,如图3.9所示。

图3.9  各个循环利用的时间统计

3.3.6  console.trace()方法

console.trace()用于输出当前位置的栈信息,可以向console.trace()方法传递恣意字符串作为标志,类似于console.time()中的参数。在REPL交互式运行环境中实行以下代码:
console.trace(‘trace’);
可以看到此处的栈信息已经在命令行中输出,如图3.10所示。

图3.10  console.trace()输出栈信息







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表