在nodejs中,全域變數有兩個:1、“__filename”, 表示目前正在執行的腳本的檔名,可輸出檔案所在位置的絕對路徑;2、“__dirname”,表示目前執行腳本所在的目錄。
本教學操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。
1)_filename:指向目前執行的腳本檔名。
2)_dirname:指向目前執行的腳本所在的目錄。
__filename
__filename 表示目前正在執行的腳本的檔案名稱。它將輸出檔案所在位置的絕對路徑,且和命令列參數所指定的檔案名稱不一定相同。如果在模組中,傳回的值是模組檔案的路徑。
實例
建立文件main.js ,程式碼如下所示:
// 输出全局变量 __filename 的值console.log( __filename );
執行main.js 文件,程式碼如下所示:
$ node main.js /web/com/runoob/nodejs/main.js
__dirname
__dirname 表示目前執行腳本所在的目錄。
實例
建立文件main.js ,程式碼如下所示:
// 输出全局变量 __dirname 的值console.log( __dirname );
執行main.js 文件,程式碼如下所示:
$ node main.js /web/com/runoob/nodejs
全域物件與全域變數:
global 最根本的作用是作為全域變數的宿主。依照 ECMAScript 的定義,滿足以下條 件的變數是全域變數:
在最外層定義的變數;全域物件的屬性;隱式定義的變數(未定義直接賦值的變數)。
當你定義一個全域變數時,這個變數同時也會成為全域物件的屬性,反之亦然。要注意 意的是,在 Node.js 中你不可能在最外層定義變量,因為所有使用者程式碼都是屬於目前模組的, 而模組本身不是最外層上下文。
模組內部的局部變量,指向的物件根據模組不同而不同,但是所有模組都適用,可以看作是偽全域變量,主要為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之間的連結。但是,下面這樣寫是可以的。
更多node相關知識,請造訪:nodejs 教學! !
以上是nodejs中全域變數有什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!