Node 全局變量 global
除去一些 ES 中的全局對象、方法與變量, Node 還提供一些全局的內置方法、對象與變量用於幫助程序的執行。這些對象與方法能被應用在所有的模塊中。
可以使用 console.log(global)
命令來查看全局對象與方法
現在我們來查看一下這些全局的對象與方法。
對象
global
global
用於掛載全局對象與方法。
console
控制檯對象,用於向標準輸出流出信息。
-
log(), warn(), error(), info()
用於打印日誌信息有一個參數,即爲輸出的內容。如果有多個參數,那麼與
C語言
的print()
函數相似。
error()
與其它三個方法不一樣的地方就是它不是把內容寫入到 process.stdout 而是 process.stderr 中 -
dir(), table()
用於以一種友好的方式顯示對象數據。 -
group(), groupEnd(), groupCollapsed()
組團打印。 -
time(), timeEnd(), timeline(), timelineEnd()
基準測試,用於計時。 -
count()
用於查看調用計數。 -
trace()
堆棧追蹤。
Buffer
Buffer 是代表原始堆的分配額的數據類型, 在 js 中以類數組方式來進行操作。
-
使用
toString()
來把數據轉化成 utf-8 編碼格式的字符串。(默認,當然也可以傳入參數來指定編碼格式) -
使用
Buffer.isBuffer()
方法來判斷變量是否是 Buffer 類型。
process
用於與操作系統通信。並且通過退出碼與信號量與其它進程進行進程間的通信。
-
使用
arch, platform
來獲取平臺信息。 -
使用
memoryUsage()
來查看內存使用的情況。const mu = process.memoryUsage() console.log(mu.rss) // 常駐內存大小 console.log(mu.heapUsed) // 動態分配的可用內存 console.log(mu.heapTotal) // 已經使用的堆大小
-
使用
argv
來查看命令行參數信息。 -
使用
exit()
方法來退出程序。 -
stdin, stdout, stderr
標準輸入流,標準輸出流,標準錯誤流。 -
使用
nextTick()
來把函數放入一下個循環隊列隊頭。
方法
setInterval
setInterval(cb, ms) 全局函數在指定的毫秒(ms)數後執行指定函數(cb)。
setTimeout
setTimeout(cb, ms) 全局函數在指定的毫秒(ms)數後執行指定函數(cb)。:setTimeout() 只執行一次指定函數。
setImmediate
setImmediate()是將事件插入到事件隊列尾部,主線程和事件隊列的函數執行完成之後立即執行setImmediate指定的回調函數,和setTimeout(fn,0)的效果差不多,但是當他們同時在同一個事件循環中時,執行順序是不定的。
clearInterval, clearTimeout, clearImmediate
清除句柄,取消執行計劃。
變量
Nodejs 的全局變量只有兩個 __filename, __dirname 用於輔助用戶開發。
-
__filename
__filename 表示當前正在執行的腳本的文件名。它將輸出文件所在位置的絕對路徑,且和命令行參數所指定的文件名不一定相同。 如果在模塊中,返回的值是模塊文件的路徑。
console.log(__filename)
-
__dirname
__dirname 表示當前執行腳本所在的目錄,它將輸出文件所在位置的絕對路徑。
console.log(__dirname)