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的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
用NodeJS实现批量查询地理位置的经纬度接口
Aug 16 NodeJs
nodejs中向HTTP响应传送进程的输出
Mar 19 NodeJs
Nodejs中使用captchapng模块生成图片验证码
May 18 NodeJs
nodejs async异步常用函数总结(推荐)
Nov 17 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
详解webpack打包nodejs项目(前端代码)
Sep 19 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
Nodejs监控事件循环异常示例详解
Sep 22 NodeJs
在nodejs中创建child process的方法
Jan 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
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
Python isinstance函数介绍
2015/04/14 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
2014个人年度工作总结
2014/12/15 职场文书
物业项目经理岗位职责
2015/04/01 职场文书