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实现PHP的print_r函数代码
Mar 14 NodeJs
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
Jan 16 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
Feb 06 NodeJs
nodejs处理tcp连接的核心流程
Feb 26 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
Apache设置虚拟WEB
2006/10/09 PHP
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python爬虫超时的处理的实例
2018/12/19 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
python设置环境变量的作用整理
2020/02/17 Python
python Timer 类使用介绍
2020/12/28 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
商务英语专业应届毕业生求职信
2013/10/28 职场文书
员工晚婚的请假条
2014/02/08 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
个人剖析材料范文
2014/09/30 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
Java 多线程并发FutureTask
2022/06/28 Java/Android