更新時間:2023-05-18 來源:黑馬程序員 瀏覽量:
在之前使用JavaScript的過程中,在瀏覽器中默認聲明的變量、函數等都屬于全局對象window,全局對象中的所有變量和函數在全局作用域內都是有效的。例如,使用console.log0進行值的輸出時,console.log0屬于window對象的方法,又因為window是全局對象,所以在實際使用中可以省略掉 window。
在Node.js中,一個重要的特性就是模塊化,默認聲明的變量、函數都屬于當前文件模塊,都是私有的,只在當前模塊作用域內可以使用,那么Node.js中是否只有模塊作用域?答案是否定的,如果想在全局范圍內為某個變量賦值,可以應用全局對象global。Node.js中的global對象類似于瀏覽器中的window對象,用于定義全局命名空間,所有全局變量(除了global本身外)都是global對象的屬性,在實際使用中可以省略global。
Node.js中的global 全局對象包含console.log0、sefTimeout)、clearTimeout)、setlnterval)、clearlnterval0等方法,可以在任何地方使用。下面來演示上述方法在Node.js運行環(huán)境中的使用。
global.console.log('我是global對象中的console.log()方法'); global.setTimeout(() =>{ console.log('123'); },2000);
上述代碼中,第l行和第2行代碼分別調用eonsole.log0和sefTimeout0方法,在Node.js環(huán)境下驗證這兩個方法是否屬于global對象下的方法。
(2)打開命令行工具,切換到global.js文件所在的目錄,并輸人“node globaljs”命令。globaljs文件執(zhí)行結果如圖,從圖中的輸出結果可以看出,global對象包含jspnsole.log0和sefT'imeout()方法。