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学习小结(一)
Jul 06 NodeJs
使用nodejs、Python写的一个简易HTTP静态文件服务器
Jul 18 NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
详解nodejs http请求相关总结
Mar 31 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
NodeJs内存占用过高的排查实战记录
May 10 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快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
js生成随机数之random函数随机示例
2013/12/20 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
Python 字典dict使用介绍
2014/11/30 Python
Python3实现购物车功能
2018/04/18 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
快速创建python 虚拟环境
2020/11/28 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
中间件分为哪几类
2012/03/14 面试题
人力资源经理的岗位职责范本
2014/02/28 职场文书
开工仪式主持词
2014/03/20 职场文书
秋天的雨教学反思
2014/04/27 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
Python Django模型详解
2021/10/05 Python