NodeJs实用工具util

today, 我们的话题作文是nodejs,我尝试对它的描述是:似曾相似,但它又不一样的存在着。百花齐放的it世界里,以独特身姿绽放的美丽更容易吸引人。也许只是不了解,也许时间会给出答案,nodejs你值得拥有。

本篇涉及的东西是Nodejs的util模块,实用工具.

1.util.inspect(object[, options])

返回一个对象的字符串表现形式,通常用于调试和错误输出,在代码调试的时候非常有用。

通过加入一些可选选项,来改变对象的格式化输出形式:

  • showHidden - 如果为 true,将会显示对象的不可枚举属性。默认为 false

  • depth - 告诉 inspect 格式化对象时递归多少次。这在格式化大且复杂对象时非常有用。默认为 2。如果想无穷递归的话,传 null 。

  • colors - 如果为 true, 输出内容将会格式化为有颜色的代码。默认为 false, 颜色可以自定义,参见下文。

  • customInspect - 如果为 false, 那么定义在被检查对象上的inspect(depth, opts) 方法将不会被调用。 默认为true。

检查 util 对象上所有属性的例子:

var util = require('util');

console.log(util.inspect(util, { showHidden: true, depth: null }));

2.util.format(format[, ...])

使用第一个参数返回一个格式化的字符串,类似 printf

第一个参数是字符串,它包含 0 或更多的占位符。每个占位符被替换成想要参数转换的值。支持的占位符包括:

  • %s - 字符串.
  • %d - 数字 (整数和浮点数).
  • %j - JSON. 如果参数包含循环引用,将会用字符串替换R
  • %% - 单独一个百分号 ('%')。 不会消耗一个参数。

如果占位符没有包含一个相应的参数,占位符不会被替换。

util.format('%s:%s', 'foo'); // 'foo:%s'

如果参数超过占位符,多余的参数将会用 util.inspect() 转换成字符串,并拼接在一起,用空格隔开。

util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'

如果第一个参数不是格式化字符串,那么 util.format() 会返回所有参数拼接成的字符串(空格分割)。每个参数都会用 util.inspect() 转换成字符串。

util.format(1, 2, 3); // '1 2 3'

3.util.log(string)

 stdout 输出并带有时间戳.

require('util').log('Timestamped message.');

4.util.inherits(constructor, superConstructor)

从一个构造函数constructor继承原型方法到另一个。构造函数的原型将被设置为一个新的从超类(superConstructor)创建的对象。

==>util.inherits(sub,base)
sub仅仅只会继承base中在原型定义的成员,不会继承base构造函数的成员。
使用console.log(对象)时,不会打印原型定义的成员,仅仅只是打印构造函数定义的成员.

var util=require('util');
function Mother(){
    this.name="Mom";
    this.Skill="Love Me";
    this.sayHello=function(){
        console.log("Hello ,I am "+this.name);
    }
}
Mother.prototype.sayByeBye=function(){
    console.log("Good Bye ,I am "+this.name);
}
function Son(){
    this.name="YZR";
}
util.inherits(Son,Mother);

var M=new Mother();
M.sayHello();
M.sayByeBye();
console.log(M);
var S=new Son();
S.sayByeBye();
console.log(S);

========================================================
E:>cd nodejs
E:NodeJS>node inherits.js
Hello ,I am Mom
Good Bye ,I am Mom
Mother { name: 'Mom', Skill: 'Love Me', sayHello: [Function] }
Good Bye ,I am YZR
Son { name: 'YZR' }

5.util.isArray(object)

Array.isArray 的内部别名。

如果参数 "object" 是数组,返回 true ,否则返回 false 。

6.util.isRegExp(object)

如果参数 "object" 是 RegExp 返回 true ,否则返回 false

7.util.isDate(object)

如果参数 "object" 是 Date 返回 true ,否则返回 false

8.util.isError(object)

如果参数 "object" 是 Error 返回 true ,否则返回 false

详细请查看api:http://wiki.jikexueyuan.com/project/nodejs/utilities.html

原文地址:https://www.cnblogs.com/Francis-YZR/p/5265055.html