Node.js:全局對(duì)象
Node.js 有許多內(nèi)置的全局標(biāo)識(shí)符。這些對(duì)象在所有模塊中都可用。其中一些對(duì)象是真正的全局變量,可以從任何地方訪問,其他對(duì)象存在于每個(gè)模塊的模塊級(jí)別。
全局
全局命名空間。對(duì)此命名空間設(shè)置屬性使其在運(yùn)行的進(jìn)程中全局可見。
類型:對(duì)象
在瀏覽器中,頂級(jí)屬性是全局范圍。因此在瀏覽器中,var var_name 將定義一個(gè)全局變量。在 Node 中,模塊內(nèi)的 var var_name 是該模塊的本地范圍,即頂級(jí)范圍不是全局范圍。
console
該內(nèi)置對(duì)象用于打印 stdout 和 stderr。該對(duì)象有多個(gè)方法,請(qǐng)參閱控制臺(tái)部分的詳細(xì)信息。
類型:對(duì)象
這是一個(gè)打印字符串的簡(jiǎn)單示例。
過程
進(jìn)程對(duì)象是一個(gè)全局對(duì)象,它提供與當(dāng)前 Node 進(jìn)程的交互,并且可以從任何地方訪問。
類型:對(duì)象
在以下示例中,只要進(jìn)程即將退出,就會(huì)觸發(fā) exit 事件。
var fs = require('fs');
process.on('exit', function () {
var content = fs.readFileSync("readme.txt", "utf8");
});
類別: 緩沖器
Buffer 類是全局的。它直接處理二進(jìn)制數(shù)據(jù),并且可以通過多種方式構(gòu)建。
類型 : 函數(shù)
在以下示例中,roll_no 包含數(shù)組的內(nèi)容。查看輸出。
require()
require() 函數(shù)是一個(gè)內(nèi)置函數(shù),用于包含存在于單獨(dú)文件中的其他模塊,一個(gè)指定要加載的模塊的字符串。它接受一個(gè)參數(shù)。它不是全局的,而是每個(gè)模塊的局部的。
類型 : 函數(shù)
在以下示例中包含“fs”(文件系統(tǒng))模塊。
var fs = require('fs');var content = fs.readFileSync("readme.txt", "utf8");
console.log(content);
console.log('Reading file...');
require.resolve()
require.resolve() 用于搜索模塊的位置并返回解析的文件名。這是一個(gè)例子
第一個(gè)命令 require.resolve('fs') 僅顯示 'fs',沒有任何路徑,因?yàn)樗?Node 附帶的默認(rèn)模塊。第二個(gè)顯示“mysql”模塊的完整路徑,該模塊是第三方模塊。
require.cache
模塊被緩存(包含所有當(dāng)前加載的模塊)在此對(duì)象中。您可以通過從該對(duì)象中刪除鍵值來清除該模塊。您可以使用 require() 再次加載它。
類型:對(duì)象
filename
__filename 包含當(dāng)前正在執(zhí)行的文件的絕對(duì)路徑。這在 Node REPL 中不存在。
類型:字符串
這是一個(gè)例子。
代碼(test.js):
console.log(__filename);
輸出 :
dirname
__dirname 包含當(dāng)前正在執(zhí)行的腳本的根目錄的路徑。這在 Node REPL 中不存在。
類型:字符串
這是一個(gè)例子。
代碼(test.js):
console.log(__dirname);
輸出 :
模塊
對(duì)當(dāng)前模塊的引用。在特定程序中,模塊通過 require() 變得可用。它不是全局的,而是每個(gè)模塊的局部的。
類型:對(duì)象
在以下示例中,“fs”模塊用于讀取文件:
exports
對(duì) module.exports 的引用,鍵入時(shí)間較短。導(dǎo)出實(shí)際上不是全局的,而是每個(gè)模塊的本地的。
setTimeout
setTimeout() 在指定的毫秒數(shù) (ms) 后調(diào)用函數(shù) (cb)。超時(shí)必須在 1-2,147,483,647 范圍內(nèi)(含)。如果該值超出該范圍,則會(huì)更改為 1 毫秒。這是一個(gè)例子:
setTimeout(function(){
console.log('I have come after 500 miliseconds')},500);
輸出 :
clearTimeout(t)
clearTimeout() 用于取消使用 setTimeout() 設(shè)置的超時(shí)?;卣{(diào)將不會(huì)執(zhí)行。
setInterval(cb, ms)
setinterval() 以指定的時(shí)間間隔(以毫秒 (ms) 為單位)重復(fù)調(diào)用函數(shù) (cb)。間隔必須在 1-2,147,483,647 范圍內(nèi)(含)。如果該值超出該范圍,則會(huì)更改為 1 毫秒。
注意:實(shí)際間隔可能會(huì)有所不同,具體取決于操作系統(tǒng)計(jì)時(shí)器粒度和系統(tǒng)負(fù)載等外部因素。它永遠(yuǎn)不會(huì)小于毫秒,但可能會(huì)更長(zhǎng)。
在以下示例中,“Node.js”字符串將每 300 毫秒重復(fù)打印一次。
setInterval(function(){
console.log('Node.js')
}, 300);
輸出 :
clearInterval(t)
clearInterval() 用于停止使用 setInterval() 設(shè)置的計(jì)時(shí)器。回調(diào)將不會(huì)執(zhí)行。
注意:所有定時(shí)器函數(shù)都是全局變量。
版權(quán)所屬:SO JSON在線解析
原文地址:http://zijieyoumin.cn/blog/530.html
轉(zhuǎn)載時(shí)必須以鏈接形式注明原始出處及本聲明。
如果本文對(duì)你有幫助,那么請(qǐng)你贊助我,讓我更有激情的寫下去,幫助更多的人。