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之間的連結。但是,下面這樣寫是可以的。
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之間的連結。但是,下面這樣寫是可以的。