nj08---process、console
生活随笔
收集整理的這篇文章主要介紹了
nj08---process、console
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概念:所有屬性都可以在程序的任何地方訪問,即全局變量。在JavaScript中,通常window是全局對象,而Node.js的全局對象是global,所有全局變量都是global對象的屬性,如:console、process等。一、全局對象與全局變量
global最根本的作用是作為全局變量的宿主。滿足以下條件成為全局變量:
1.在最外層定義的變量
2.全局對象的屬性
3.隱式定義的變量(未定義直接賦值的變量)
在Node.js中不可能在最外層定義變量,因為所有用戶代碼都是屬于當前模塊的,而模塊本身不是最外層上下文。二、process
它用于描述當前Node.js進程狀態(tài)的對象。提供了一個與操作系統的簡單接口,通常寫本地命令行程序的時候,會用到它。
1.process.argv是命令行參數數組,第一個元素是node,第二個元素是腳本文件名,第三個元素開始每個元素是一個運行參數。console.log(process.argv);
/*node argv.js '11' '22' 33 oo
輸出:node.exe
argv.js
'11'
'22'
33
'oo'*/
2.process.stdout是標準輸出流,進入node環(huán)境,通常我們使用的console.log() 其底層是用 process.stdout.write();實現。
3.prcess.stdin是標準輸入流,初始時它是被暫停的。要想從標準輸入流讀取數據,必須恢復流,并手動編寫流的事件相應函數。//恢復流
process.stdin.resume();
process.stdin.on('data',function(data){process.stdout.write('read from console'+data.toString());
})
//node stdin.js 然后輸入,可以一直輸入
4.process.nextTick(callback)的功能是為事件循環(huán)設置一項任務。Node.js會在下次事件循環(huán)調響應時調用callback
Node.js適合IO密集型的應用,而不是計算密集型的應用。process.nextTick()提供了一個這樣工具,可以把復雜的工作拆散,成較小的事件去執(zhí)行。function doSomething(args,callback){somethingComplited(args);callback();
}
doSomething('12345',function onEnd(){compute();
})
如果假設compute()和somethingComplited()是兩個較為耗時的函數。以上的程序在調用doSomething時會先執(zhí)行somethingComplited(args),然后立即調用回調函數,在onEnd()中又會執(zhí)行compute(),改寫為:function doSomething(args,callback){somethingComplited(args);process.nextTick(callback);
}
使用process.nextTick()后,改寫后的程序會把上面耗時的操作拆分為兩個事件,減少每個事件的執(zhí)行時間,提高事件相應速度。function compute(){
console.log("I am is cpmpute method");
}
function somethingComplited(args){console.log("I am is somethingComplited method");console.log(args);
}
//function doSomething(args,callback){
// somethingComplited(args);
// callback();
//}
function doSomething(args,callback){somethingComplited(args);process.nextTick(callback);//這個方法是異步執(zhí)行
}
doSomething('12345',function onEnd(){compute();
})5.process其他方法:process.platform()、process.pid()、process.execPath()、process.memoryUsage()等方法。。。API鏈接:http://nodejs.org/api/process.html
二、console
java中的log4j的 Logger logger=new Logger(Object.class);logger.infologger.errorlogger.debug用于提供控制臺標準輸出,Node.js沿用了這個標準,提供與習慣行為一直的console對象。
1.console.log().向標準輸出流打印字符并以換行符結束。
使用案例:console.log("hello");console.log("hello%marico");console.log("hello%marico"," Mr. ");
2.console.error();用法與console.log()相同,只是向標準錯誤流輸出。
3.console. trace();向標準錯誤六輸出當前的調用棧
console.log("hello"); console.log('hello%marico');console.log('hello%marico',1991,'yfc');console.error('error!');console.trace('this is a error');/*hello
hello%marico
hello%marico 1991*/
?
轉載于:https://www.cnblogs.com/yaowen/p/7014285.html
總結
以上是生活随笔為你收集整理的nj08---process、console的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: anaconda各个版本下载资源
- 下一篇: VB2010(1)_Hello User