一,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 :
結果如下:
五,__dirname
__dirname表示目前執行腳本所在的目錄。
例子:
建立dirname.js
輸出結果:
六,setTimeout(cb, ms) 與 clearTimeout(t)
clearTimeout(t)全局函數用于停止一個之前通過setTimeout()建立的定時器。參數t是通過setTimeout()函數建立的定時器。
例子:
六,setInterval(cb, ms) 與 clearInterval(t)同理如上。
七,console
console.log('abc%abc', 111);
運作結果為
abc111abc
八,process
process是一個全局變量,即global對象的屬性。
它用于描述目前Node.js 程序狀态的對象。提供了一個與作業系統的簡單接口。
通常你在本地寫指令行程式的時候,少不了要和它打交道。
執行結果:
// 記憶體使用情況
process.memoryUsage()