Node.js 全局對象

2022-02-26 10:29 更新

在Node.js中我們可以直接訪問到全局對象。

這些對象在所有模塊里都是可用的,有些對象不是在全局作用域而是在模塊作用域里,這些情況將在本文的內(nèi)容中進行介紹。

global

  • {Object} 全局命名空間對象。

在瀏覽器中,全局作用域就是頂級域。如果在全局域內(nèi)定義變量var something將會是全局變量。而在Node中,頂級域并不是全局域;在模塊里定義變量 var something只是模塊內(nèi)可用。

process

  • {Object}

進程對象。參見process object章節(jié).

console

  • {Object}

用來打印stdout和stderr。參見console章節(jié).

Class: Buffer

  • {Function}

用來處理二進制數(shù)據(jù)。參見buffer 章節(jié)。

require()

  • {Function}

引入模塊。參見Modules章節(jié)。require實際上并非全局的,而是各個本地模塊有效。

require.resolve()

使用內(nèi)部require()機制來查找module位置,但是不加載模塊,只是返回解析過的文件名。

require.cache

  • {Object}

引入模塊時會緩存到這個對象。通過刪除該對象鍵值,下次調(diào)用require將會重載該模塊。

require.extensions

穩(wěn)定性: 0 - 拋棄
  • {Object}

指導(dǎo)require如何處理特定的文件擴展名。

.sjs文件當(dāng)作.js文件處理:

require.extensions['.sjs'] = require.extensions['.js'];

拋棄 以前這個列表用來加載按需編譯的非JavaScript模塊到node。實際上,有更好的辦法來解決這個問題,比如通過其他node程序來加載模塊,或者提前編譯成 JavaScript。

由于模塊系統(tǒng)已經(jīng)鎖定,該功能可能永遠(yuǎn)不會去掉。改動它可能會產(chǎn)生bug,所以最好不要動它。

__filename

  • {String}

被執(zhí)行的代碼的文件名是相對路徑。對于主程序來說,這和命令行里未必用同一個文件名。模塊里的值是模塊文件的路徑。

列如,運行/Users/mjr里的node example.js

console.log(__filename);
// /Users/mjr/example.js

__filename不是全局的,而是模塊本地的。

__dirname

  • {String}

執(zhí)行的script代碼所在的文件夾的名字。

列如,運行/Users/mjr里的node example.js

console.log(__dirname);
// /Users/mjr

__dirname不是全局的,而是模塊本地的。

module

  • {Object}

當(dāng)前模塊的引用。通過require()module.exports定義了哪個模塊輸出可用。

module不是全局的,而是模塊本地的。

更多信息參見module system documentation。

exports

module.exports的引用。關(guān)于什么時候使用exportsmodule.exports,可以參考module system documentation。

module不是全局的,而是模塊本地的。

更多信息參見module system documentation。

更多信息參見module 章節(jié)。

setTimeout(cb, ms)

最少在ms毫秒后調(diào)回調(diào)函數(shù)。實際的延遲依賴于外部因素,比如操作系統(tǒng)的粒度和負(fù)載。

timeout值有效范圍為1-2,147,483,647。如果超過該范圍,將會變?yōu)?毫秒。通常,定時器不應(yīng)該超過24.8天。

返回一個代表定時器的句柄值。

clearTimeout(t)

停止一個之前通過setTimeout()創(chuàng)建的定時器。不會再被執(zhí)行回調(diào)。

setInterval(cb, ms)

每隔ms毫秒調(diào)用回調(diào)函數(shù)cb。實際的間隔依賴于外部因素,比如操作系統(tǒng)的粒度和系統(tǒng)負(fù)載。通常會大于ms。

間隔值的有效范圍在1-2,147,483,647。如果超過該范圍,將會變?yōu)?毫秒。通常,定時器不應(yīng)該超過24.8天。

返回一個代表該定時器的句柄值。

clearInterval(t)

停止一個之前通過setInterval()創(chuàng)建的定時器。不會再被執(zhí)行回調(diào)。

timer函數(shù)是全局變量。參見timers章節(jié)。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號