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 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
Jan 01 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 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
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
使用Python下载Bing图片(代码)
2013/11/07 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
python中实现字符串翻转的方法
2018/07/11 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
pymysql 开启调试模式的实现
2019/09/24 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
python ETL工具 pyetl
2020/06/07 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
2015/09/02 HTML / CSS
30年同学聚会邀请函
2014/01/25 职场文书
倡议书格式范文
2014/04/14 职场文书
精神文明单位申报材料
2014/05/02 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
社区母亲节活动总结
2015/02/10 职场文书
教师创先争优承诺书
2015/04/27 职场文书
小学三年级作文之写景
2019/11/05 职场文书
java实现web实时消息推送的七种方案
2022/07/23 Java/Android
httpclient调用远程接口的方法
2022/08/14 Java/Android