首頁  >  文章  >  web前端  >  nodejs中全域變數有什麼

nodejs中全域變數有什麼

青灯夜游
青灯夜游原創
2021-11-23 15:09:143587瀏覽

在nodejs中,全域變數有兩個:1、“__filename”, 表示目前正在執行的腳本的檔名,可輸出檔案所在位置的絕對路徑;2、“__dirname”,表示目前執行腳本所在的目錄。

nodejs中全域變數有什麼

本教學操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn