天天看點

Node.js 第十二章- 全局對象

一,JavaScript全局對象

在Javascript中有一個特殊的對象,稱為全局對象。(Global Object),它及其所有屬性都可以在程式的任何地方通路,即全局變量。

在浏覽器Javascript中,通常window是全局對象。

二,Node.js全局對象

Node.js的全局對象是global,所有全局變量(除global本身以外)都是global對象的屬性。

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

三,全局對象與全局變量

1. global最根本的作用是作為全局變量的宿主。按照ECMAScript,滿足以下條件的變量是全局變量:

1.1 在最外層定義的變量;

1.2 全局對象的屬性;

1.3 隐式定義的變量;

當你定一個全局變量時,這個變量同時也會稱為全局對象的屬性,反之亦然。

需要注意的是,你在Node.js中你不可能在最外層定義變量,因為所有使用者代碼都屬于目前子產品的,而子產品本身不是最外層上下文。

注意⚠️:永遠使用var 定義變量,以避免一如全局變量,因為全局變量會污染命名空間,提高代碼的耦合風險。

四,__filename

__filename 表示目前正在執行的腳本的檔案名。

它将輸出檔案所在位置的絕對路徑,且和指令行參數所制定的檔案名不一定相同。

建立filename.js :

Node.js 第十二章- 全局對象

結果如下: 

Node.js 第十二章- 全局對象

 五,__dirname

__dirname表示目前執行腳本所在的目錄。

例子:

建立dirname.js

Node.js 第十二章- 全局對象

輸出結果:

Node.js 第十二章- 全局對象

 六,setTimeout(cb, ms) 與 clearTimeout(t)

clearTimeout(t)全局函數用于停止一個之前通過setTimeout()建立的定時器。參數t是通過setTimeout()函數建立的定時器。

例子:

Node.js 第十二章- 全局對象

六,setInterval(cb, ms) 與 clearInterval(t)同理如上。

七,console

console.log('abc%abc', 111);

運作結果為

abc111abc

八,process 

process是一個全局變量,即global對象的屬性。

它用于描述目前Node.js 程序狀态的對象。提供了一個與作業系統的簡單接口。

通常你在本地寫指令行程式的時候,少不了要和它打交道。

Node.js 第十二章- 全局對象

執行結果:

Node.js 第十二章- 全局對象

// 記憶體使用情況

process.memoryUsage()

繼續閱讀