Node.js 全域對象

來源:互聯網
上載者:User

標籤:ref   令行   非同步呼叫   ret   全域對象   異常   調用   usr   清空   

JavaScript 中有一個特殊的對象,稱為全域對象(Global Object),它及其所有屬性都可以在程式的任何地方訪問,即全域變數。

在瀏覽器 JavaScript 中,通常 window 是全域對象, 而 Node.js 中的全域對象是 global,所有全域變數(除了 global 本身以外)都是 global 對象的屬性。

 

在 Node.js 我們可以直接存取到 global 的屬性,而不需要在應用中包含它。

全域對象與全域變數

global 最根本的作用是作為全域變數的宿主。按照 ECMAScript 的定義,滿足以下條 件的變數是全域變數:

  • 在最外層定義的變數;
  • 全域對象的屬性;
  • 隱式定義的變數(未定義直接賦值的變數)。

當你定義一個全域變數時,這個變數同時也會成為全域對象的屬性,反之亦然。需要注 意的是,在 Node.js 中你不可能在最外層定義變數,因為所有使用者代碼都是屬於當前模組的, 而模組本身不是最外層上下文。

注意: 永遠使用 var 定義變數以避免引入全域變數,因為全域變數會汙染 命名空間,提高代碼的耦合風險。

process

process 是一個全域變數,即 global 對象的屬性。

它用於描述當前Node.js 進程狀態的對象,提供了一個與作業系統的簡單介面。通常在你寫本地命令列程式的時候,少不了要 和它打交道。下面將會介紹 process 對象的一些最常用的成員方法。

序號 事件 & 描述
1 exit
當進程準備退出時觸發。
2 beforeExit
當 node 清空事件迴圈,並且沒有其他安排時觸發這個事件。通常來說,當沒有進程安排時 node 退出,但是 ‘beforeExit‘ 的監聽器可以非同步呼叫,這樣 node 就會繼續執行。
3 uncaughtException
當一個異常冒泡回到事件迴圈,觸發這個事件。如果給異常添加了監視器,預設的操作(列印堆疊追蹤資訊並退出)就不會發生。
4 Signal 事件
當進程接收到訊號時就觸發。訊號列表詳見標準的 POSIX 訊號名,如 SIGINT、SIGUSR1 等。
     執行個體

建立檔案 main.js ,代碼如下所示:

process.on(‘exit‘, function(code) {  // 以下代碼永遠不會執行  setTimeout(function() {    console.log("該代碼不會執行");  }, 0);    console.log(‘退出碼為:‘, code);});console.log("程式執行結束");

執行 main.js 檔案,代碼如下所示:

node main.js

程式執行結束退出碼為: 0

Node.js 全域對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.