util

Node.js util 实用工具免费看

util模块的使用、util模块的常用函数、如util.format、util.inspect、util.inherits等

2020-04-22侠课岛    基础入门       

后端/Node.js/Node.js简明入门 16     0     688

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

util模块的使用

util模块可以通过 require() 方法来引入:

var util = require('util');

util模块的常用函数

util.format

util.format() 方法返回一个格式化后的字符串,使用第一个参数作为一个类似 printf 的格式的字符串,该字符串可以包含零个或多个格式占位符。 每个占位符会被对应参数转换后的值所替换。

语法如下:

util.format(format[, ...args])
  • format : 一个类似 printf 的格式字符串。
示例:

首先我们需要引入util模块,才可以使用format()方法,返回一个格式化后的字符串:

const util = require('util');

console.log(util.format(1, 2, 3));

console.log(util.format('%s:%s', 'x', 'k', 'd'));

console.log(util.format('%% %s'));

输出:

1 2 3
x:k d
%% %s

util.inspect

util.inspect 是一个将任意对象转换为字符串的方法,通常用于调试和错误输出,返回一个对象的字符串表现形式。 语法如下:

util.inspect(object,[showHidden],[depth],[colors])
  • object:任何 JavaScript 原语或 Object。该函数至少接受一个参数 object。
  • showHidden:可选,如果值为 true,object 则格式化结果中将包含的不可枚举的符号和属性。
  • depth :指定格式化时递归的次数 object。
  • colors:如果为true,则输出使用ANSI颜色代码设置样式。
示例:

首先引入util 模块,然后定义一个User方法,通过 util.inspect 将对象转换为字符串:

var util = require('util'); 

function User() { 
    this.name = 'xkd'; 
    this.toString = function() { 
        return this.name; 
    }; 
} 
var obj = new User(); 
console.log(util.inspect(obj)); 

console.log(util.inspect(obj, true)); 

运行结果为:

util.inherits

util.inherits 是一个实现对象间原型继承的函数。 语法如下:

util.inherits(constructor, superConstructor)
  • constructor: 构造函数。
  • superConstructor:父类构造函数。 JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有提供对象继承的语言级别特性,而是通过原型复制来实现的。
示例:

下面代码中,我们定义了一个基础对象MyStream,这个对象继承自EventEmitter对象:

// 引入模块
const util = require('util');
const EventEmitter = require('events');

// 
function MyStream() {
  EventEmitter.call(this);
}

util.inherits(MyStream, EventEmitter);  // 继承

MyStream.prototype.write = function(data) {
  this.emit('data', data);
};

const stream = new MyStream();

console.log(stream instanceof EventEmitter);
console.log(MyStream.super_ === EventEmitter); 

stream.on('data', (data) => {
  console.log(`接收的数据:"${data}"`);
});
stream.write('运作良好!'); 

输出:

true
true
接收的数据:"运作良好!"

util.isDate(object)

如果给定的参数 "object" 是一个日期返回true,否则返回false。

示例:

例如我们来看下面这段代码,我们判断了几个对象是否是日期:

var util = require('util');

console.log(new Date(), ", 是否是日期:", util.isDate(new Date()));   
console.log(Date(), ", 是否是日期:", util.isDate(Date()));  
console.log({}, ", 是否是日期:", util.isDate({})) 
console.log("xkd", ", 是否是日期:", util.isDate("xkd")) 

输出:

2020-04-08T08:25:37.798Z , 是否是日期: true
Wed Apr 08 2020 16:25:37 GMT+0800 (GMT+08:00) , 是否是日期: false
{} , 是否是日期: false
xkd , 是否是日期: false

util.isArray(object)

util.isArray()用于判断参数object是否是一个数组,如果是一个数组则返回true,否则返回false。

示例:

例如我们定义三个变量,第一个变量为数组,第二个为字符串,第三个为对象:

var util = require('util');

var a = [];
var b = "xkd";
var c = {};
console.log(util.isArray(a));   
console.log(util.isArray(b));  
console.log(util.isArray(c)) 

输出:

true
false
false

从输出结果我们可以看出,只有数组返回的是true,其他都为false。

util.isRegExp(object)

util.isRegExp()用于判断给定的参数 object是否是一个正则表达式,如果是一个正则表达式则返回true,否则返回false。

示例:

下面是isRegExp()方法的使用:

var util = require('util');

a = /regexp/;
b = new RegExp('regexp');
c = "xkd";
console.log(util.isRegExp(a));   
console.log(util.isRegExp(b));
console.log(util.isRegExp(c)) 

输出:

true
true
false

从结果我们可以看出,变量a和b是正则表达式,而变量c不是。

util.isError(object)

util.isError()用于判断给定的参数 object 是否是一个错误对象,如果是一个错误对象则返回true,否则返回false。

示例:

我们定义三个变量,其中变量a为错误对象,b为数组,c为字符串:

var util = require('util');

var a = new Error();
var b = [1, 2, 4];
var c = "xkd";
console.log(util.isError(a));   
console.log(util.isError(b));  
console.log(util.isError(c)) 

输出:

true
false
false

从输出结果可以很明显看出,只有变量a为错误对象,其他都不是错误对象。

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

16

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录


本文索引


|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?