博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.Js util模块
阅读量:4288 次
发布时间:2019-05-27

本文共 2710 字,大约阅读时间需要 9 分钟。

util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足。

1.util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数。
JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。

JavaScript 没有 提供对象继承的语言级别特性,而是通过原型复制来实现的。

var util=require('util');function Base(){	this.name='base';	this.base=1991;	this.sayHello=function(){		console.log('Hello '+this.name);	}}Base.prototype.showName=function(){	console.log(this.name);}function Sub(){	this.name='sub';}util.inherits(Sub,Base);//父类实例var objBase=new Base();objBase.showName(); // baseobjBase.sayHello(); // Hello baseconsole.info(objBase); //{ name: 'base', base: 1991, sayHello: [Function] }//子类实例var objSub=new Sub();objSub.showName(); // sub//objSub.sayHello(); //非原型链的方法没有继承,此处抛出异常console.info(objSub); // { name: 'sub' }
2.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='zhangsan';	this.toString=function(){		return 'Hello '+this.name;	}}var obj=new Person();console.log(util.inspect(obj)); //{ name: 'zhangsan', toString: [Function] }console.log(util.inspect(obj,true));// { name: 'zhangsan',//   toString: //    { [Function]//      [length]: 0,//      [name]: '',//      [arguments]: null,//      [caller]: null,//      [prototype]: { [constructor]: [Circular] } } }
3.数据类型判断
util.isNull(object),util.isUndefined(object),util.isNullOrUndefined(object),util.isError(object),util.isNumber(object),util.isString(object),util.isBollean(object),util.isFunction(object),util.isArray(object),util.isRegExp(object),util.isDate(object),util.isBuffer(object)util.isPrimitive(object)util.isSymbol(object)var util=require('util');var age=11;var name='zhagnsan';var person={	age:age,	name:name}//isNull 是否为null判断console.log(util.isNull(age)); //falseconsole.log(util.isNull(null)); //true
4.util.format(format, [...])
根据第一个参数,返回一个格式化字符串,类似printf的格式化输出。
第一个参数是一个字符串,包含零个或多个占位符。 每一个占位符被替换为与其对应的转换后的值。 支持的占位符有:
%s - 字符串.
%d - 数字 (整型和浮点型).
%j - JSON. 如果这个参数包含循环对象的引用,将会被替换成字符串 '[Circular]'。
%% - 单独一个百分号('%')。不会消耗一个参数。
如果占位符没有相对应的参数,占位符将不会被替换。
var util=require('util');//如果占位符没有相对应的参数,占位符将不会被替换。console.log(util.format('%s:%s'),'zhangsan'); //zhangsan:%s//如果有多个参数占位符,额外的参数将会调用util.inspect()转换为字符串。这些字符串被连接在一起,并且以空格分隔。console.log(util.format('%s:%s','one','two','three')); //one:two three//如果第一个参数是一个非格式化字符串,那么util.format()将会把所有的参数转成字符串,以空格隔开,拼接在一块,并返回该字符串。//util.inspect()会把每个参数都转成一个字符串。console.log(util.format(1,2,3));// '1 2 3'

转载地址:http://dyogi.baihongyu.com/

你可能感兴趣的文章
论文笔记|Self-Supervised Test-Time Learning for Reading Comprehension
查看>>
论文笔记|Open-world Learning and Application to Product Classification
查看>>
论文笔记 _ ELECTRA_ Pre-training Text Encoders as Discriminators Rather than Generators
查看>>
【论文笔记】
查看>>
论文笔记:Exploring Pre-trained Language Models for Event Extraction and Generation
查看>>
论文解读 | QANET: COMBINING LOCAL CONVOLUTION WITH GLOBAL SELF-ATTENTION FOR READING COMPREHENSION
查看>>
linux 安装nginx
查看>>
linux 搭建rocketmq集群
查看>>
linux 安装zookeeper集群
查看>>
RocketMq单机安装(Windows)
查看>>
Windows 上安装 MySQL
查看>>
eclipse 的mybatis中mapper.xml文件标签没有提示的解决方法
查看>>
linux 上一主两从mysql集群中某台数据库宕机解决方法
查看>>
大牛面试指南
查看>>
android入门(一)---UI组件之文本框(TextView)
查看>>
演示动画怎么实现的
查看>>
android入门---Activity组件.活动(一)
查看>>
Android入门---GridView组件
查看>>
获取apk文件上的精美图片素材
查看>>
RelativeLayout中Margin属性
查看>>