Node.js模块小记之--util

util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足。

util.inherits

util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数。

JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有 提供对象继承的语言级别特性,而是通过原型复制来实现的

用法:
util.inherits(类1, 被继承的类2); 
注意:

类1 仅仅继承了类2在原型中定义的函数,而构造函数内部创造的属性和函数都没有被继承。

同时,在原型中定义的属性不会被console.log 作 为对象的属性输出。

一般不推荐使用 inherits,而使用ES6 的 class 和 extends

const EventEmitter = require('events');

class MyStream extends EventEmitter {
  constructor() {
    super();
  }
  write(data) {
    this.emit('data', data);
  }
}

util.inspect

util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象。

showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。

depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多少。如果不指定depth,默认会递归2层,指定为 null 表示将不限递归层数完整遍历对象。 如果color值为 true,输出格式将会以ANSI 颜色编码,通常用于在终端显示更漂亮 的效果。

特别要指出的是,util.inspect并不会简单地直接把对象转换为字符串,即使该对象定义了toString 方法也不会调用。

更多参数:

  • showHidden <boolean> 如果为 true,则 object 的不可枚举的符号与属性也会被包括在格式化后的结果中。 默认为 false
  • depth <number> 指定格式化 object 时递归的次数。 这对查看大型复杂对象很有用。 默认为 2。 若要无限地递归则传入 null
  • colors <boolean> 如果为 true,则输出样式使用 ANSI 颜色代码。 默认为 false。 颜色可自定义,详见自定义util.inspect 颜色
  • customInspect <boolean> 如果为 false,则 object 上自定义的 inspect(depth, opts) 函数不会被调用。 默认为 true
  • showProxy <boolean> 如果为 true,则 Proxy 对象的对象和函数会展示它们的 target 和 handler 对象。 默认为 false
  • maxArrayLength <number> 指定格式化时数组和 TypedArray 元素能包含的最大数量。 默认为 100。 设为 null 则显式全部数组元素。 设为 0 或负数则不显式数组元素。
  • breakLength <number> 一个对象的键被拆分成多行的长度。 设为 Infinity 则格式化一个对象为单行。 默认为 60

util.inspect()返回object 的字符串表示,主要用于调试。 附加的 options 可用于改变格式化字符串的某些方面。

util.format()

format函数根据第一个参数,返回一个格式化字符串,第一个参数是一个可包含零个或多个占位符的字符串。每一个占位符被替换为与其对应的转换后 的值,支持的占位符有:"%s(字符串)"、"%d(数字<整型和浮点型>)"、"%j(JSON)"、"%(单独一个百分号则不作为一个参 数)"。

1:如果占位符没有相对应的参数,占位符将不会被替换.如示例:

  1. var util = require('util');
  2. var result = util.format('%s:%s', 'foo');
  3. console.log(result);

运行结果:

  1. 'foo:%s'

2:如果有多个参数占位符,额外的参数将会调用util.inspect()转换为字符串。这些字符串被连接在一起,并且以空格分隔。如示例:

  1. var util = require('util');
  2. var result = util.format('%s:%s', 'foo', 'bar', 'baz');
  3. console.log(result);

运行结果:

  1. 'foo:bar baz'

3:如果第一个参数是一个非格式化字符串,则会把所有的参数转成字符串并以空格隔开拼接在一块,而且返回该字符串。如示例:

  1. var util = require('util');
  2. var result = util.format(1, 2, 3);
  3. console.log(result);

运行结果:

  1. '1 2 3'






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值