node.js全局对象和全局变量
生活随笔
收集整理的這篇文章主要介紹了
node.js全局对象和全局变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概念:所有屬性都可以在程序的任何地方訪問,即全局變量。在JavaScript中,通常window是全局對象,而Node.js的全局對象是global,所有全局變量都是global對象的屬性,如:console、process等。
如果假設compute()和somethingComplited()是兩個較為耗時的函數。以上的程序在調用doSomething時會先執行somethingComplited(args),然后立即調用回調函數,在onEnd()中又會執行compute(),改寫為: function doSomething(args,callback){ somethingComplited(args); process.nextTick(callback); }
????????????使用process.nextTick()后,改寫后的程序會把上面耗時的操作拆分為兩個事件,減少每個事件的執行時間,提高事件相應速度。 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.info logger.error logger.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();向標準錯誤六輸出當前的調用棧 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
??????一、全局對象與全局變量
global最根本的作用是作為全局變量的宿主。滿足以下條件成為全局變量: 1.在最外層定義的變量 2.全局對象的屬性 3.隱式定義的變量(未定義直接賦值的變量) 在Node.js中不可能在最外層定義變量,因為所有用戶代碼都是屬于當前模塊的,而模塊本身不是最外層上下文。??????二、process
它用于描述當前Node.js進程狀態的對象。提供了一個與操作系統的簡單接口,通常寫本地命令行程序的時候,會用到它。 1.process.argv是命令行參數數組,第一個元素是node,第二個元素是腳本文件名,第三個元素開始每個元素是一個運行參數。 2.process.stdout是標準輸出流,通常我們使用的console.log()? 其底層是用 process.stdout.write();實現。 3.prcess.stdin是標準輸入流,初始時它是被暫停的。要想從標準輸入流讀取數據,必須恢復流,并手動編寫流的事件相應函數。 4.process.nextTick(callback)的功能是為事件循環設置一項任務。Node.js會在下次事件循環調響應時調用callback Node.js適合IO密集型的應用,而不是計算密集型的應用。process.nextTick()提供了一個這樣工具,可以把復雜的工作拆散,編較小的事件程一個。 function doSomething(args,callback){ somethingComplited(args); callback(); }?????? doSomething('12345',function onEnd(){ compute(); }) stdin.js //要想從標準輸入流讀取數據,必須恢復流,并手動編寫流的事件相應函數。 process.stdin.resume(); process.stdin.on('data',function(data){//注冊事件process.stdout.write('read from console'+data.toString()); }) //用來獲取鍵盤輸入的值 nexttick.js 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);//為事件循環設置一項任務,node.js會在下次事件循環調同響應時調用callback } doSomething('12345',function onEnd(){compute(); }) /*從程序的運行結果: I am is somethingComplited method 12345 I am is cpmpute method 可以看出,在doSomething中先執行somethingComplited(args);然后再執行通過process.nextTick(callback);響應調用回調函數*/如果假設compute()和somethingComplited()是兩個較為耗時的函數。以上的程序在調用doSomething時會先執行somethingComplited(args),然后立即調用回調函數,在onEnd()中又會執行compute(),改寫為: function doSomething(args,callback){ somethingComplited(args); process.nextTick(callback); }
????????????使用process.nextTick()后,改寫后的程序會把上面耗時的操作拆分為兩個事件,減少每個事件的執行時間,提高事件相應速度。 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.info logger.error logger.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();向標準錯誤六輸出當前的調用棧 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的node.js全局对象和全局变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言之strstr函数
- 下一篇: 图像格式jpg、jpeg、jpe、gif