首頁技術(shù)文章正文

Node.js:全局可用變量、函數(shù)和對象

更新時間:2022-04-15 來源:黑馬程序員 瀏覽量:

1.理解全局作用域

在Node.js中,global對象定義了全局命名空間。當(dāng)我們定義了一個全局變量時,這個變量同時也會成為全局對象global的屬性,反之亦然??梢哉f在全局作用域中,任何變量、函數(shù)和對象都是global對象的一個屬性值。

2.理解“全局可用”

本節(jié)中要介紹的是,在Node.js中提供的一些全局可用的變量、函數(shù)和對象,這里所謂的全局就是不需要進(jìn)行模塊加載,可以直接使用的,其中包括全局作用域的函數(shù)和對象,也包括另一種不在全局作用域,而是在每個模塊作用域都存在的變量、函數(shù)和對象,在全局可用,但不是golbal對象的屬性。

例如require()函數(shù),在每個模塊作用域中存在,所有不需要加載可以使用,我們可以說它是全局可用,但它不是全局函數(shù)。

Node.js6.2.1版本的相關(guān)手冊中,在手冊中對API都有介紹,在目錄中打開index.html代表查看所有API,如圖2-43所示。

查看api

圖2-43index.html

在圖2-43的右側(cè)菜單中找到“Globals”并單擊,然后會顯示所有在全局可以使用的變量、函數(shù)和對象,如圖2-44所示。

變量、函數(shù)和對象

圖2-44全局可用的變量、函數(shù)和對象

在圖2-44中,_dirname、_filename、exports和module對象與require()函數(shù)相似,都是存在于每個模塊作用域中,實(shí)際上并不是全局對象,Buffer和process在本書后面的章節(jié)中會陸續(xù)講解到。

3. _dirname和_filename變量

Node.js中提供了兩個與文件操作相關(guān)全局可用變量_dirname和_filename,_dirname表示當(dāng)前文件所在的目錄,_filename表示當(dāng)前正在執(zhí)行的腳本的文件名。它將輸出文件所在位置的絕對路徑,且和命令行參數(shù)所指定的文件名不一定相同。如果在模塊中,返回的值是模塊文件的路徑。

接下來通過一個案例來演示兩個變量的具體使用。在C:\Course\code\chapter02\目錄下創(chuàng)建demo2-6.js文件,在該文件下添加代碼如下所示。

demo2-6.js

// 輸出全局變量__dirname 的值
console.log('文件的目錄是:'+__dirname);
// 輸出全局變量__filename 的值
console.log('文件的絕對路徑是:'+__filename);

打開終端,執(zhí)行demo2-6.js,執(zhí)行結(jié)果如圖2-45所示。

圖2-45demo2-6.js執(zhí)行結(jié)果

需要注意的是,無論通過開發(fā)工具還是記事本創(chuàng)建文件,如果文件內(nèi)需要執(zhí)行的代碼中包含中文,都要將文件編碼保存為utf8格式,否則在執(zhí)行時會出現(xiàn)亂碼問題,關(guān)于亂碼問題在第5章節(jié)中會進(jìn)行詳細(xì)介紹。

關(guān)于文件的編碼修改,可以用記事本打開方式打開文件,找到【文件】菜單,如圖2-46所示。

圖2-46【文件】菜單在圖2-46中,單擊【文件】->【另存為】,可以看到文件編碼選項(xiàng),如圖2-47所示。

編碼選項(xiàng)

圖2-47編碼選項(xiàng)

在圖2-47中可以進(jìn)行文件編碼的修改,單擊“保存”可以完成修改,其他開發(fā)工具中可以在文件上右擊,一般找到修改文件編碼的位置。

4. 全局函數(shù)

Node.js中還提供的常用的全局函數(shù),如表2-2所示。

表2-2Node.js的全局函數(shù)函數(shù)
全局函數(shù)

5.console對象

在前面的學(xué)習(xí)過程中,經(jīng)常會使用到“console.log()”語句,console對象就是一個全局對象,用于提供控制臺標(biāo)準(zhǔn)輸出,除了console.log()函數(shù)外還提供了其他的函數(shù),如表2-3所示。

表2-3console對象提供的函數(shù)
console

由于表2-3在開發(fā)中不經(jīng)常使用,這里只需要掌握console.log()的使用方法即可。






猜你喜歡:

node.js安裝步驟和環(huán)境變量配置[詳細(xì)圖文教程]

Node.js起源?Node.js有哪些特點(diǎn)?

Node.JS下載與安裝詳細(xì)教程

JS不確定參數(shù)個數(shù):rest語法

黑馬程序員web前端高級軟件工程師培訓(xùn)

分享到:
在線咨詢 我要報名
和我們在線交談!