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