nodejs 全局變量和全局對(duì)象知識(shí)點(diǎn)及用法詳解
1、全局對(duì)象
所有模塊都可以調(diào)用
1)global:表示Node所在的全局環(huán)境,類似于瀏覽器中的window對(duì)象。
2)process:指向Node內(nèi)置的process模塊,允許開發(fā)者與當(dāng)前進(jìn)程互動(dòng)。
例如你在DOS或終端窗口直接輸入node,就會(huì)進(jìn)入NODE的命令行方式(REPL環(huán)境)。退出要退出的話,可以輸入 process.exit();
3)console:指向Node內(nèi)置的console模塊,提供命令行環(huán)境中的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出功能。
通常是寫console.log(),無(wú)須多言
2、全局函數(shù)
1)定時(shí)器函數(shù):共有4個(gè),分別是setTimeout(), clearTimeout(), setInterval(), clearInterval()。
2)require:用于加載模塊。
3、全局變量
1)_filename:指向當(dāng)前運(yùn)行的腳本文件名。
2)_dirname:指向當(dāng)前運(yùn)行的腳本所在的目錄。
4、準(zhǔn)全局變量
模塊內(nèi)部的局部變量,指向的對(duì)象根據(jù)模塊不同而不同,但是所有模塊都適用,可以看作是偽全局變量,主要為module, module.exports, exports等。
module變量指代當(dāng)前模塊。module.exports變量表示當(dāng)前模塊對(duì)外輸出的接口,其他文件加載該模塊,實(shí)際上就是讀取module.exports變量。
- module.id 模塊的識(shí)別符,通常是模塊的文件名。
- module.filename 模塊的文件名。
- module.loaded 返回一個(gè)布爾值,表示模塊是否已經(jīng)完成加載。
- module.parent 返回使用該模塊的模塊。
- module.children 返回一個(gè)數(shù)組,表示該模塊要用到的其他模塊。
這里需要特別指出的是,exports變量實(shí)際上是一個(gè)指向module.exports對(duì)象的鏈接,等同在每個(gè)模塊頭部,有一行這樣的命令。
var exports = module.exports;
這造成的結(jié)果是,在對(duì)外輸出模塊接口時(shí),可以向exports對(duì)象添加方法,但是不能直接將exports變量指向一個(gè)函數(shù):
exports.自定義模塊 = function (x){ console.log(x);};
上面這樣的寫法是無(wú)效的,因?yàn)樗袛嗔薳xports與module.exports之間的鏈接。但是,下面這樣寫是可以的。
知識(shí)點(diǎn)擴(kuò)展:
JavaScript中有一個(gè)特殊的對(duì)象,叫全局對(duì)象.
在瀏覽器JS中,這個(gè)全局對(duì)象通常是Window對(duì)象
而在NodeJS中,這個(gè)全局對(duì)象的名字是global.
在NodeJS中,有三種定義全局變量的方法:
1> 在最外層定義的變量.
一般來(lái)講,用戶代碼不會(huì)處于最外層.
只有一種情況可以:在解釋器shell環(huán)境中.
2>將變量定義為global對(duì)象的屬性
var global.x;
3>隱式定義的所有變量(未定義,直接賦值的變量)
這也是為啥不建議使用隱式定義,這樣的變量被定義為全局變量會(huì)污染環(huán)境.
到此這篇關(guān)于nodejs 全局變量和全局對(duì)象知識(shí)點(diǎn)及用法詳解的文章就介紹到這了,更多相關(guān)nodejs 全局變量和全局對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs中實(shí)現(xiàn)sleep功能實(shí)例
這篇文章主要介紹了nodejs中實(shí)現(xiàn)sleep功能實(shí)例,本文講解了sleep功能的開發(fā)過(guò)程和使用效果及性能測(cè)試,需要的朋友可以參考下2015-03-03Node.js中使用socket創(chuàng)建私聊和公聊聊天室
這篇文章主要介紹了Node.js中使用socket創(chuàng)建私聊和公聊聊天室的相關(guān)資料,需要的朋友可以參考下2015-11-11nodejs 十六進(jìn)制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉(zhuǎn)換
這篇文章主要介紹了nodejs 十六進(jìn)制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉(zhuǎn)換,需要的朋友可以參考下2018-07-07better?sqlite3安裝node?gyp原生模塊編譯prebuild-install
這篇文章主要為大家介紹了Nodejs關(guān)于原生模塊編譯node-gyp?+?prebuild-install?(以安裝?better-sqlite3為例)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11