nodejs基础之常用工具模块util用法分析


Posted in NodeJs onDecember 26, 2018

本文实例讲述了nodejs基础之常用工具模块util用法。分享给大家供大家参考,具体如下:

util是nodejs的核心模块,提供常用函数的集合,用户弥补核心javascript的功能过于精简的不足

util.inherits

是一个实现对象间原型继承的函数

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

示例:

var util = require('util');
function Father(){
  //在构造函数内部定义,不能被继承
  this.name = 'base';
  //在构造函数内部定义,不能被继承
  this.birth = 1991;
  //在构造函数内部定义,不能被继承
  this.sayHello = function(){
    console.log('hello'+this.name);
  }
}
//在原型中定义,可以被继承
Father.prototype.age=18;
//在原型中定义,可以被继承
Father.prototype.showName = function(){
  console.log(this.name);
  console.log(this.age);
}
//在原型中定义,可以被继承
Father.prototype.showAge = function(){
  console.log(this.age);
}
function Son(){
}
util.inherits(Son,Father);
var objBase = new Father();
objBase.showName();
objBase.sayHello();
console.log(objBase);
var objSub = new Son();
objSub.showAge();

我们定义了一个基础对象Father 和一个继承自Father 的Son,Father 在构造函数内定义两个属性(name,birth)和一个函数(sayHello);在原型中定义一个属性(age)和两个函数(showName,showAge),通过util.inherits 实现继承。

注意:

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

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

util.inspect

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

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

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

示例:

var util = require('util');
function Person() {
  this.name = 'byvoid';
  this.toString = function() {
  return this.name;
  };
}
var obj = new Person();
console.log(util.inspect(obj));
console.log(util.inspect(obj, true));

结果:

{ name: 'byvoid', toString: [Function] }
{ toString:
{ [Function]
[prototype]: { [constructor]: [Circular] },
[caller]: null,
[length]: 0,
[name]: '',
[arguments]: null },
name: 'byvoid' }

util.isArray(object)

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

var util = require('util');
util.isArray([])
// true
util.isArray(new Array)
// true
util.isArray({})
// false

util.isRegExp(object)

如果给定的参数 "object" 是一个正则表达式返回true,否则返回false。

var util = require('util');
util.isRegExp(/some regexp/)
// true
util.isRegExp(new RegExp('another regexp'))
// true
util.isRegExp({})
// false

util.isDate(object)

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

var util = require('util');
util.isDate(new Date())
// true
util.isDate(Date())
// false (without 'new' returns a String)
util.isDate({})
// false

util.isError(object)

如果给定的参数 "object" 是一个错误对象返回true,否则返回false。

var util = require('util');
util.isError(new Error())
// true
util.isError(new TypeError())
// true
util.isError({ name: 'Error', message: 'an error occurred' })
// false

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
NodeJS的模块写法入门(实例代码)
Mar 07 NodeJs
nodejs中使用monk访问mongodb
Jul 06 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
深入浅析Nodejs的Http模块
Jun 20 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
nodeJs实现基于连接池连接mysql的方法示例
Feb 10 NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 #NodeJs
nodejs异步编程基础之回调函数用法分析
Dec 26 #NodeJs
Nodejs处理异常操作示例
Dec 25 #NodeJs
Nodejs模块的调用操作实例分析
Dec 25 #NodeJs
nodejs中方法和模块用法示例
Dec 24 #NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 #NodeJs
nodejs图片处理工具gm用法小结
Dec 12 #NodeJs
You might like
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
PHP goto语句用法实例
2019/08/06 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
自我鉴定书范文
2013/10/02 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
故宫的导游词
2015/01/31 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
学校教师培训工作总结
2015/10/14 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
初中语文教学研修日志
2015/11/13 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python