Node 全局變量

Node 全局變量 global

除去一些 ES 中的全局對象、方法與變量, Node 還提供一些全局的內置方法、對象與變量用於幫助程序的執行。這些對象與方法能被應用在所有的模塊中。

可以使用 console.log(global)命令來查看全局對象與方法
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 用於輔助用戶開發。

  1. __filename

    __filename 表示當前正在執行的腳本的文件名。它將輸出文件所在位置的絕對路徑,且和命令行參數所指定的文件名不一定相同。 如果在模塊中,返回的值是模塊文件的路徑。

      console.log(__filename)
    
  2. __dirname

    __dirname 表示當前執行腳本所在的目錄,它將輸出文件所在位置的絕對路徑。

    	console.log(__dirname)
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章