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(二)--- Node.js事件模块
May 21 NodeJs
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 NodeJs
轻松创建nodejs服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
浅谈NodeJS中require路径问题
May 07 NodeJs
Nodejs爬虫进阶教程之异步并发控制
Feb 15 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
nodejs项目windows下开机自启动的方法
Nov 22 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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临时文件的安全性分析
2014/07/04 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
详解Python的Django框架中的通用视图
2015/05/04 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
工商管理专业应届生求职信
2013/11/04 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
师德师风自查总结
2014/10/14 职场文书
银行招聘自荐信
2015/03/06 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python