1. 程式人生 > 實用技巧 >Node.js 全域性物件

Node.js 全域性物件

Node.js 全域性物件

參考https://www.runoob.com/nodejs/nodejs-global-object.html

  • 全域性物件global(其所有屬性稱為全域性變數),任何地方都可以訪問;
  • JavaScript中window是全域性物件,Node.js中global是全域性物件。

全域性物件和全域性變數

全域性變數

  • 在最外層定義的變數
  • 全域性物件的屬性也是全域性變數
  • 隱式定義的變數,即不使用let、var、const等關鍵詞而直接賦值的變數

定義一個全域性變數的時候,它也會變為全域性物件的屬性;
在Node.js中不可能在最外層定義物件,因為使用者程式碼都是屬於當前模組的。

最好不要使用var等關鍵字定義變數,以避免引入全域性變數而影響程式碼耦合

全域性物件global的屬性

  • ——filename:當前正在執行的指令碼名稱(絕對路徑),string型別;

  • ——dirname:當前執行指令碼所在目錄(絕對路徑),string型別;

  • setTimeout(cb, ms):在指定毫秒(ms)數後執行指定函式(cb),只執行一次;

  • clearTimeout(t):停止之前通過setTimeout()建立的定時器:

    var t = setTimeout(functionName, 1000);//1s後執行functionName
    clearTimeout(t);//清除上一行宣告的定時器
    
  • setInterval(cb, ms):同setTimeout(cb, ms),但是是週期執行而不是一次,直到呼叫clearInterval(t)或者停止指令碼;

  • console:專門用於控制檯日誌輸出,其全域性方法有console.log()、console.info()等

  • process

常用事件:

  1. exit:當程序準備退出時觸發;
  2. beforeExit:當node清空事件迴圈,並且沒有其他的程序安排的時候觸發;通常沒有程序安排時node就會退出,但是'beforeExit'的監聽器可以非同步呼叫,從而node繼續執行;
  3. uncaughtException:當一個異常回到事件迴圈,就會觸發,如果添加了響應的監聽器就會覆蓋預設的列印堆疊跟蹤資訊等操作;
  4. Signal事件:當程序接收到訊號時就觸發。

使用process.on('事件名', 監聽器)來監聽事件。