nodejs 全局變量和全局對象知識點及用法詳解

1、全局對象

所有模塊都可以調用

1)global:表示Node所在的全局環境,類似於瀏覽器中的window對象。

2)process:指向Node內置的process模塊,允許開發者與當前進程互動。

例如你在DOS或終端窗口直接輸入node,就會進入NODE的命令行方式(REPL環境)。退出要退出的話,可以輸入 process.exit();

3)console:指向Node內置的console模塊,提供命令行環境中的標準輸入、標準輸出功能。

通常是寫console.log(),無須多言

2、全局函數

1)定時器函數:共有4個,分別是setTimeout(), clearTimeout(), setInterval(), clearInterval()。
2)require:用於加載模塊。

3、全局變量

1)_filename:指向當前運行的腳本文件名。

2)_dirname:指向當前運行的腳本所在的目錄。

4、準全局變量

模塊內部的局部變量,指向的對象根據模塊不同而不同,但是所有模塊都適用,可以看作是偽全局變量,主要為module, module.exports, exports等。

module變量指代當前模塊。module.exports變量表示當前模塊對外輸出的接口,其他文件加載該模塊,實際上就是讀取module.exports變量。

  • module.id 模塊的識別符,通常是模塊的文件名。
  • module.filename 模塊的文件名。
  • module.loaded 返回一個佈爾值,表示模塊是否已經完成加載。
  • module.parent 返回使用該模塊的模塊。
  • module.children 返回一個數組,表示該模塊要用到的其他模塊。

這裡需要特別指出的是,exports變量實際上是一個指向module.exports對象的鏈接,等同在每個模塊頭部,有一行這樣的命令。

var exports = module.exports;

這造成的結果是,在對外輸出模塊接口時,可以向exports對象添加方法,但是不能直接將exports變量指向一個函數:

exports.自定義模塊 = function (x){ console.log(x);};

上面這樣的寫法是無效的,因為它切斷瞭exports與module.exports之間的鏈接。但是,下面這樣寫是可以的。

知識點擴展:

JavaScript中有一個特殊的對象,叫全局對象.

在瀏覽器JS中,這個全局對象通常是Window對象

而在NodeJS中,這個全局對象的名字是global.

在NodeJS中,有三種定義全局變量的方法:

1> 在最外層定義的變量.

一般來講,用戶代碼不會處於最外層.

隻有一種情況可以:在解釋器shell環境中.

2>將變量定義為global對象的屬性

var global.x;

3>隱式定義的所有變量(未定義,直接賦值的變量)

這也是為啥不建議使用隱式定義,這樣的變量被定義為全局變量會污染環境.

到此這篇關於nodejs 全局變量和全局對象知識點及用法詳解的文章就介紹到這瞭,更多相關nodejs 全局變量和全局對象內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: