這些對象是所有模塊都可用的。其中的一些對象不是真正的在全局作用域內(nèi),而是在模塊作用域內(nèi) - 它將會在文檔中被指出。
在瀏覽器,頂級作用域是全局作用域。這意味著在瀏覽器的全局作用域中,你創(chuàng)建了一個對象那么就是定義了一個全局對象。在io.js
中是不同的,頂級作用域不是全局作用域,在io.js
的模塊中創(chuàng)建的對象只屬于那個模塊。
進程對象。參閱process
章節(jié)。
被用來向stdout
和stderr
打印信息。參閱console
章節(jié)。
被用來處理二進制數(shù)據(jù)。參閱buffer
章節(jié)。
用來引入模塊。參閱Modules
章節(jié)。require
實際上不是全局的,而是每個模塊本地的。
使用內(nèi)部require()
機制來查找模塊位置,但是只返回被解析的模塊路徑,而不是加載模塊。
當(dāng)模塊被引入時,模塊在這個對象中被緩存。通過刪除這個對象的鍵值,下一次引入會重新加載模塊。
穩(wěn)定度: 0 - 棄用
指示require
方法如何處理特定的文件擴展名。
將擴展名為.sjs
的文件當(dāng)做.js
文件處理:
require.extensions['.sjs'] = require.extensions['.js'];
在被棄用之前,這個列表被用于按需編譯非JavaScript
模塊并加載入io.js
。但是,在實踐中,有更好地方法來實現(xiàn)這個功能,如使用其他的io.js
程序來加載模塊,或在預(yù)編譯為JavaScript
。
由于模塊系統(tǒng)的API已被鎖定,這個特性可能永遠不會被去處。但是它可能有細微的bug和額外的復(fù)雜性,所以最好不要再使用它。
當(dāng)前被指定的代碼的文件名。它被解析為絕對路徑。對于主程序,它可能與命令行中使用的文件路徑是不同的。在模塊內(nèi)這個值是該模塊文件的路徑。
例子:在/Users/mjr
目錄中執(zhí)行iojs example.js
console.log(__filename);
// /Users/mjr/example.js
__filename
實際上不是全局的,而是每個模塊本地的。
當(dāng)前執(zhí)行腳本所在的目錄名。
例子:在/Users/mjr
目錄中執(zhí)行iojs example.js
console.log(__dirname);
// /Users/mjr
__dirname
實際上不是全局的,而是每個模塊本地的。
當(dāng)前模塊的一個引用。特別的,module.exports
被用來指定模塊需要對外暴露的東西,這些東西可以通過require()
取得。
module
實際上不是全局的,而是每個模塊本地的。
更多信息請參閱模塊系統(tǒng)文檔。
module.exports
的一個快捷引用。對于何時使用exports
,何時使用module.exports
,請參閱模塊系統(tǒng)文檔。
exports
實際上不是全局的,而是每個模塊本地的。
更多信息請參閱模塊系統(tǒng)文檔。
更多信息請參閱module
章節(jié)。
在至少ms
毫秒后,執(zhí)行回調(diào)函數(shù)cb
。實際的延時依賴于外部因素,如操作系統(tǒng)的定時器粒度和系統(tǒng)負載。
超時時間必須在1到2,147,483,647之間。如果超過了這個范圍,它會被重置為1毫秒。換句話說,定時器的跨度不可以超過24.8天。
返回一個代表此定時器的句柄值。
停止一個之前通過setTimeout()
創(chuàng)建的定時器。它的回調(diào)函數(shù)將不會執(zhí)行。
以ms
毫秒的間隔,重復(fù)地執(zhí)行回調(diào)函數(shù)cb
。實際的間隔可能會有浮動,這取決于外部因素,如操作系統(tǒng)的定時器粒度和系統(tǒng)負載。它永遠不會比ms
短只會比它長。
間隔值必須在1到2,147,483,647之間。如果超過了這個范圍,它會被重置為1毫秒。換句話說,定時器的跨度不可以超過24.8天。
返回一個代表此定時器的句柄值。
停止一個之前通過setInterval()
創(chuàng)建的定時器。它的回調(diào)函數(shù)將不會執(zhí)行。
定時器函數(shù)都是全局變量。參閱定時器章節(jié)。
更多建議: