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的10个性能优化技巧
Jul 15 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
详解NODEJS的http实现
Jan 04 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 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函数)
2006/10/09 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
php判断linux下程序问题实例
2015/07/09 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
初识JQuery 实例一(first)
2011/03/16 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
js 调用百度分享功能
2017/02/27 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
python用Configobj模块读取配置文件
2020/09/26 Python
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
主管会计岗位职责
2014/03/13 职场文书
促销活动总结怎么写
2014/06/25 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
高中英语教学反思范文
2016/03/02 职场文书
五年级语文教学反思
2016/03/03 职场文书
简历自我评价范文
2019/04/24 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
python四种出行路线规划的实现
2021/06/23 Python
nginx实现动静分离的方法示例
2021/11/07 Servers
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle