更新時間:2022-04-15 來源:黑馬程序員 瀏覽量:
在Node.js中,global對象定義了全局命名空間。當(dāng)我們定義了一個全局變量時,這個變量同時也會成為全局對象global的屬性,反之亦然??梢哉f在全局作用域中,任何變量、函數(shù)和對象都是global對象的一個屬性值。
本節(jié)中要介紹的是,在Node.js中提供的一些全局可用的變量、函數(shù)和對象,這里所謂的全局就是不需要進行模塊加載,可以直接使用的,其中包括全局作用域的函數(shù)和對象,也包括另一種不在全局作用域,而是在每個模塊作用域都存在的變量、函數(shù)和對象,在全局可用,但不是golbal對象的屬性。
例如require()函數(shù),在每個模塊作用域中存在,所有不需要加載可以使用,我們可以說它是全局可用,但它不是全局函數(shù)。
Node.js6.2.1版本的相關(guān)手冊中,在手冊中對API都有介紹,在目錄中打開index.html代表查看所有API,如圖2-43所示。
圖2-43index.html
在圖2-43的右側(cè)菜單中找到“Globals”并單擊,然后會顯示所有在全局可以使用的變量、函數(shù)和對象,如圖2-44所示。
圖2-44全局可用的變量、函數(shù)和對象
在圖2-44中,_dirname、_filename、exports和module對象與require()函數(shù)相似,都是存在于每個模塊作用域中,實際上并不是全局對象,Buffer和process在本書后面的章節(jié)中會陸續(xù)講解到。
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é)中會進行詳細介紹。
關(guān)于文件的編碼修改,可以用記事本打開方式打開文件,找到【文件】菜單,如圖2-46所示。
圖2-46【文件】菜單在圖2-46中,單擊【文件】->【另存為】,可以看到文件編碼選項,如圖2-47所示。
圖2-47編碼選項
在圖2-47中可以進行文件編碼的修改,單擊“保存”可以完成修改,其他開發(fā)工具中可以在文件上右擊,一般找到修改文件編碼的位置。
Node.js中還提供的常用的全局函數(shù),如表2-2所示。
表2-2Node.js的全局函數(shù)函數(shù)
5.console對象
在前面的學(xué)習(xí)過程中,經(jīng)常會使用到“console.log()”語句,console對象就是一個全局對象,用于提供控制臺標(biāo)準輸出,除了console.log()函數(shù)外還提供了其他的函數(shù),如表2-3所示。
表2-3console對象提供的函數(shù)
由于表2-3在開發(fā)中不經(jīng)常使用,這里只需要掌握console.log()的使用方法即可。
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19