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实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
浅谈Nodejs观察者模式
Oct 13 NodeJs
Nodejs Stream 数据流使用手册
Apr 17 NodeJs
详解Nodejs基于mongoose模块的增删改查的操作
Dec 21 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
Nodejs异步流程框架async的方法
Jun 07 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 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 xml文件操作实现代码(二)
2009/03/20 PHP
php 文件上传类代码
2011/08/06 PHP
php绘制一条直线的方法
2015/01/24 PHP
JS数学函数Exp使用说明
2012/08/09 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python改变日志(logging)存放位置的示例
2014/03/27 Python
python开发之文件操作用法实例
2015/11/13 Python
python发送告警邮件脚本
2018/09/17 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python中return的返回和执行实例
2019/12/24 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
领导干部廉政自律承诺书
2014/05/26 职场文书
弄虚作假心得体会
2014/09/10 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis