前端知识学习

Node.js 学习笔记 —— console 控制台


一. console.log

用途:进行标准输出流的输出
可以指定字符格式:console.log(“%s”,”“,”“);从第二个参数开始为字符串格式
可以计算表达式,可以使用toString
console.info用法与console.log一致,输出 % 使用 %%
重定向 node first.js > 123.log

var http = require('http');
http.createServer(function(request,resquire){   
    resquire.end("The server is running on http://localhost:3000");
}).listen(3000);
console.log("The server is running on http://localhost:3000");
console.log("%d",10,10.5);
console.log(2+3);
var a =22;
console.log(a.toString())

二. console.error

用途:进行标准错误输出流的输出
可以指定字符格式:console.error(“%s”,”“,”“);从第二个参数开始为字符串格式
可以计算表达式,可以使用toString
console.warn用法与console.log一致,输出 % 使用 %%
重定向 node first.js > 123.log


三. console.dir

用途:查看一个对像的内容并将该对象的信息输入出到控制台

var user = new Object();
user.name = "finch";
user.getName = function(){return user.name};
user.setName = function(name){this.name = name};
console.dir(user);

四. console.time 与console.tiemEnd方法

用途:统计代码执行时间,time用于开始,timeEnd用于结束,使用毫秒数及时,两个函数需使用一样的标签。

console.time('1234');
for(var i=0;i<100000;i++) ;
console.timeEnd('1234');
 

五. console.trace

用途:将当前位置出的信息栈信息作为标准错误信息进行输出。使用参数时表示标签

var user = new Object();
user.name = "finch";
user.getName = function(){return user.name};
user.setName = function(name){this.name = name};
console.dir(user);
console.trace("123");
 

六. console.assert

用途:用于对一个表达式的执行结果进行评估,如果表达式结果为false,则输出一个消息字符串,并抛出AssertionError异常


七. 全局函数 setTimeout 与 clearTimeout

用途:在当前时刻过去多少毫秒之后执行某个回调函数,具体延迟事件取决于外部因素。返回一个时间对象,clearTimeout 取消此对象。
参数:第一个为回调函数名,第二个为等待时间,第三个开始为回调函数参数

function fuc(){
    console.log("123");
}
var time = setTimeout(fuc,5000);
//clearTimeout(time);
 

八. 全局函数 setInterval 与 clearInterval

用途:每隔多少毫秒之后执行某个回调函数,具体延迟事件取决于外部因素。返回一个时间对象,clearInterval 取消此对象。
参数:第一个为回调函数名,第二个为等待时间,第三个开始为回调函数参数

function fuc(){
    console.log("123");
}
var time = setInterval(fuc,1000);
//clearInterval(time);
 

八. 时间对象方法unref与ref

用途:unref 取消回调函数,ref继续回调函数,注:不要过多使用time.unref()。


九. 与模块相关的全局函数 require

用途:加载相应模块
加载完成后的模块将存在在缓冲区,因此,重复引用模块不会引起模块内代码的多次执行,解决方案:将模块内相应部分改为方法,导出。
require.resolve函数:返回相应模块的绝对路径
require.cache对象:代表缓存了所有已加载模块的缓存去,可以使用console.log进行查看。


十. 全局函数 _filename 变量与 _dirname变量

用途:_filename 变量用于获取当前模块文件名,_dirname变量当前模块完整的路径名


十一. 获取指定事件的事件处理函数

函数名:EventEmitter.listenerCount()方法,可用来获取某个对象的指定事件的事件处理函数的数量,需要引用 event 模块。

var http = require('http');
var evt = require('events');
var ser = http.createServer();

ser.on('request',function(req,res){
    if(req.url !== "/favicon.ico")console.log(req.url+'\n using "on" methode');
    res.end();
});
ser.once('request',function(req,res){
    if(req.url !== "/favicon.ico")console.log(req.url+'\n using "once" methode');
    res.end();
});
console.log(ser.listeners('request'));

var fun = function(){
    console.log('using "removeListener" method');
}

ser.on('request',fun);
time_f = function(name,fun){
    ser.removeListener(name,fun);
} 
var time = setTimeout(time_f,5000,'request',fun);
// 自定义事件触发
ser.on('unAuto',function(var1,var2){
    console.log(var1);
    console.log(var2);
});
ser.emit('unAuto','123','456');
console.log(evt.EventEmitter.listenerCount(ser,'request'));
ser.listen(3000);
 

十二. EventEmitter自身所拥有的事件 newListener 与 removeListener

作用:提示对EventEmitter类的子类实例对象绑定事件处理函数

var http = require('http');
var evt = require('events');
var ser = http.createServer();

ser.on('request',function(req,res){
    if(req.url !== "/favicon.ico")console.log(req.url+'\n using "on" methode');
    res.end();
});
ser.once('request',function(req,res){
    if(req.url !== "/favicon.ico")console.log(req.url+'\n using "once" methode');
    res.end();
});
console.log(ser.listeners('request'));

var fun = function(){
    console.log('using "removeListener" method');
}

ser.on('newListener',function(e,r){
    console.log("对"+e+"事件添加事件处理函数");
    console.log(r);
});
ser.on('removeListener',function(e,r){
    console.log("对"+e+"事件取消事件处理函数");
    console.log(r);
});
ser.on('request',fun);
time_f = function(name,fun){
    ser.removeListener(name,fun);
} 
var time = setTimeout(time_f,5000,'request',fun);
// 自定义事件触发
ser.on('unAuto',function(var1,var2){
    console.log(var1);
    console.log(var2);
});
ser.emit('unAuto','123','456');
console.log(evt.EventEmitter.listenerCount(ser,'request'));
ser.listen(3000);