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!