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分页类代码分享
Jun 17 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
nodejs中的fiber(纤程)库详解
Mar 24 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
详解nodejs 配置文件处理方案
Jan 02 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 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
Zend引擎的发展 [15]
2006/10/09 PHP
php面向对象的方法重载两种版本比较
2008/09/08 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
简单实用jquery版三级联动select示例
2013/07/04 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
Vue自定义指令详解
2017/07/28 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
python中的插入排序的简单用法
2021/01/19 Python
css3实现超炫风车特效
2014/11/12 HTML / CSS
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
城市规划毕业生求职信
2013/10/10 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
检讨书范文2000字
2015/01/28 职场文书
大学生入党自荐书
2015/03/05 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python