node的全域物件是“global”,global最根本的作用是作為全域變數的宿主;而所有全域變數(除了global本身以外)都是global物件的屬性。在Node.js中可以直接存取到global的屬性,而不需要在應用程式中包含它。
本教學操作環境:windows7系統、nodejs16版,DELL G3電腦。
JavaScript 中有一個特殊的對象,稱為全域物件(Global Object),它及其所有屬性都可以在程式的任何地方訪問,即全域變數。
在瀏覽器JavaScript 中,通常window 是全域對象, 而Node.js 中的全域物件是global ,所有全域變數(除了global 本身以外)都是global 物件的屬性。
在Node.js 我們可以直接存取到global 的屬性,而不需要在應用程式中包含它。
全域物件與全域變數
global 最根本的作用是作為全域變數的宿主。依照ECMAScript 的定義,滿足以下條件的變數是全域變數:
在最外層定義的變數;
全域物件的屬性;
隱式定義的變數(未定義直接賦值的變數)。
當你定義一個全域變數時,這個變數同時也會成為全域物件的屬性,反之亦然。要注意的是,在Node.js 中你不可能在最外層定義變量,因為所有使用者程式碼都是屬於目前模組的, 而模組本身不是最外層上下文。
注意: 最好不要使用var 定義變數以避免引入全域變量,因為全域變數會污染命名空間,提高程式碼的耦合風險。
1、__filename
新建global.js,內容如下:
console.log( __filename );
運行如下:
node global.js __filename=/root/node_test/global.js
2、__dirname
新建dirname.js,內容如下:
console.log( __dirname);
運行如下:
node dirname.js /root/node_test
3、setTimeout(cb, ms)
setTimeout(cb, ms) 全域函數在指定的毫秒(ms)數後執行指定函數(cb)。 :setTimeout() 只執行一次指定函數。
傳回一個代表定時器的句柄值。
4、clearTimeout(t)
clearTimeout( t ) 全域函數用於停止一個先前透過setTimeout() 建立的計時器。 參數t 是透過setTimeout() 函數建立的定時器。
5、setInterval(cb, ms)
setInterval(cb, ms) 全域函數在指定的毫秒(ms)數後執行指定函數(cb)。
傳回一個代表定時器的句柄值。可以使用clearInterval(t) 函數來清除定時器。
setInterval() 方法會不停地呼叫函數,直到clearInterval() 被呼叫或視窗關閉。
6、console
console物件的方法跟傳統js在瀏覽器列印的方法類型,略。
7.process
它用來描述目前Node.js 進程狀態的對象,提供了一個與作業系統的簡單介面。通常在你寫本機命令列程式的時候,少不了要和它打交道。
exit
當進程準備退出時觸發。
beforeExit
當node 清空事件循環,並且沒有其他安排觸發這個事件。通常來說,當沒有進程安排時node 退出,但是'beforeExit' 的監聽器可以異步調用,這樣node 就會繼續執行。
uncaughtException
當一個異常冒泡回到事件循環,觸發這個事件。如果為異常添加了監視器,預設的操作(列印堆疊追蹤資訊並退出)就不會發生。
Signal 事件當進程接收到訊號時就會觸發。訊號清單詳見標準的POSIX 訊號名,如SIGINT、SIGUSR1 等。