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
windows下安装nodejs及框架express
Aug 07 NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 NodeJs
详解nodejs微信jssdk后端接口
May 25 NodeJs
nodejs async异步常用函数总结(推荐)
Nov 17 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 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
ThinkPHP分页类使用详解
2014/03/05 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python使用selenium实现批量文件下载
2019/03/11 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
Django继承自带user表并重写的例子
2019/11/18 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
兼职学生的自我评价
2013/11/24 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
初三学生个人自我评定
2014/04/06 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
2014年教研组工作总结
2014/11/26 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
个人道歉信大全
2019/04/11 职场文书
入团申请书格式
2019/06/20 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL