# 全局對象
這些對象在所有模塊中都是可用的。有些對象實(shí)際上并非在全局作用域內(nèi)而是在模塊作用域內(nèi)——這種情況在以下文檔中會特別指出。
### global
- {Object} 全局命名空間對象。
在瀏覽器中,頂級作用域就是全局作用域。這就是說,在瀏覽器中,如果當(dāng)前是在全局作用域內(nèi),`var something`將會聲明一個全局變量。在Node中則不同。頂級作用域并非全局作用域,在Node模塊里的`var something`只屬于那個模塊。
### process
- {Object}
進(jìn)程對象。見 [進(jìn)程對象](#)章節(jié)。
### console
- {Object}
用于打印標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤。見[控制臺](#)章節(jié)。
### 類: Buffer
- {Function}
用于處理二進(jìn)制數(shù)據(jù)。見[Buffer](#)章節(jié)。
### require()
- {Function}
引入模塊。見[Modules](#)章節(jié)。`require`實(shí)際上并非全局的而是各個模塊本地的。
### require.resolve()
使用內(nèi)部的`require()`機(jī)制查找模塊的位置,但不加載模塊,只返回解析過的模塊文件路徑。
### require.cache
- {Object}
模塊在引入時會緩存到該對象。通過刪除該對象的鍵值,下次調(diào)用`require`時會重新加載相應(yīng)模塊。
### require.extensions
~~~
穩(wěn)定度:0 - 已廢棄
~~~
- {Object}
指導(dǎo)`require`方法如何處理特定的文件擴(kuò)展名。
將`.sjs`文件作為`.js`文件處理:
~~~
require.extensions['.sjs'] = require.extensions['.js'];
~~~
**已廢棄** 之前,該列表用于按需編譯非JavaScript模塊并加載進(jìn)Node。然而,實(shí)踐中有更好的方式實(shí)現(xiàn)該功能,如通過其他Node程序加載模塊,或提前將他們編譯成JavaScript代碼。
由于模塊系統(tǒng)的API已鎖定,該功能可能永遠(yuǎn)不會去掉。改動它可能會產(chǎn)生細(xì)微的錯誤和復(fù)雜性,所以最好保持不變。
### __filename
- {String}
當(dāng)前所執(zhí)行代碼文件的文件路徑。這是該代碼文件經(jīng)過解析后的絕對路徑。對于主程序來說,這和命令行中使用的文件路徑未必是相同的。在模塊中此變量值是該模塊文件的路徑。
例子:在`/Users/mjr`下運(yùn)行`node example.js`
~~~
console.log(__filename);
// /Users/mjr/example.js
~~~
`__filename`實(shí)際上并非全局的而是各個模塊本地的。
### __dirname
- {String}
當(dāng)前執(zhí)行腳本所在目錄的目錄名。
例子:在`/Users/mjr`下運(yùn)行`node example.js`
~~~
console.log(__dirname);
// /Users/mjr
~~~
`__dirname`實(shí)際上并非全局的而是各個模塊本地的。
### module
- {Object}
當(dāng)前模塊的引用。特別地,`module.exports`和`exports`指向同一個對象。`module`實(shí)際上并非全局的而是各個模塊本地的。
詳情可見[模塊系統(tǒng)文檔](#)。
### exports
`module.exports`對象的引用,該對象被當(dāng)前模塊的所有實(shí)例所共享,通過`require()`可訪問該對象。 何時使用`exports`以及何時使用`module.exports`的詳情可參見[模塊系統(tǒng)文檔](#)。 `exports`實(shí)際上并非全局的而是各個模塊本地的。
詳情可見[模塊系統(tǒng)文檔](#)。
關(guān)于模塊系統(tǒng)的更多信息可參見[模塊](#) 。
### setTimeout(cb, ms)
在*至少*`ms`毫秒后調(diào)用回調(diào)`cb`。實(shí)際延遲取決于外部因素,如操作系統(tǒng)定時器粒度及系統(tǒng)負(fù)載。
超時值必須在1-2147483647的范圍內(nèi)(包含1和2147483647)。如果該值超出范圍,則該值被當(dāng)作1毫秒處理。一般來說,一個定時器不能超過24.8天。
返回一個代表該定時器的句柄值。
### clearTimeout(t)
停止一個之前通過`setTimeout()`創(chuàng)建的定時器?;卣{(diào)不會再被執(zhí)行。
### setInterval(cb, ms)
每隔`ms`毫秒重復(fù)調(diào)用回調(diào)`cb`。注意,取決于外部因素,如操作系統(tǒng)定時器粒度及系統(tǒng)負(fù)載,實(shí)際間隔可能會改變。它不會少于`ms`但可能比`ms`長。
間隔值必須在1-2147483647的范圍內(nèi)(包含1和2147483647)。如果該值超出范圍,則該值被當(dāng)作1毫秒處理。一般來說,一個定時器不能超過24.8天。
返回一個代表該定時器的句柄值。
### clearInterval(t)
停止一個之前通過`setInterval()`創(chuàng)建的定時器?;卣{(diào)不會再被執(zhí)行。
定制器函數(shù)是全局變量。見[定時器](#)章節(jié)。
- 關(guān)于本文檔
- 概述
- 斷言 (assert)
- Buffer
- Addons插件
- 子進(jìn)程
- 集群
- 控制臺
- 加密(Crypto)
- 調(diào)試器
- DNS
- 域
- 事件 (Events)
- File System
- 全局對象
- HTTP
- HTTPS
- Modules
- net
- 操作系統(tǒng)
- 路徑 (Path)
- process
- punycode
- Query String
- Readline
- REPL
- Smalloc
- 流
- 字符串解碼器
- 定時器
- TLS (SSL)
- TTY
- UDP / 數(shù)據(jù)報套接字
- URL
- utils
- 執(zhí)行 JavaScript
- Zlib
- 進(jìn)度
- 感謝
