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批量修改文件编码格式
Jan 22 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
理解nodejs的stream和pipe机制的原理和实现
Aug 12 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 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 第三节 变量介绍
2012/04/28 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
php实现的通用图片处理类
2015/03/24 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
js判断是否是手机页面
2017/03/17 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
Python排序算法实例代码
2017/08/10 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
python已协程方式处理任务实现过程
2019/12/27 Python
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
京东国际站:JOYBUY
2017/11/23 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
医院护理人员的自我评价分享
2013/10/04 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
如何用python反转图片,视频
2021/04/24 Python
详解MySQL主从复制及读写分离
2021/05/07 MySQL
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android