更新時間:2023年07月28日17時10分 來源:傳智教育 瀏覽次數(shù):
在之前使用JavaScript的過程中,在瀏覽器中默認聲明的變量、函數(shù)等都屬于全局對象window,全局對象中的所有變量和函數(shù)在全局作用域內(nèi)都是有效的。例如,使用console.log0進行值的輸出時,console.log0屬于window對象的方法,又因為window是全局對象,所以在實際使用中可以省略掉window。
在Node.js代碼的運行環(huán)境中沒有DOM和BOM,因此也就不存在window對象,那么例2-1helloworld.js文件中使用的console.log0來自于哪里呢?
在Node.js中,一個重要的特性就是模塊化,默認聲明的變量、函數(shù)都屬于當前文件模塊,都是私有的,只在當前模塊作用域內(nèi)可以使用,那么Node.js中是否只有模塊作用域?答案是否定的,如果想在全局范圍內(nèi)為某個變量賦值,可以應用全局對象global。Node.js中的global 對象類似于瀏覽器中的window對象,用于定義全局命名空間,所有全局變量(除了global本身外)都是global對象的屬性,在實際使用中可以省略global。
Node.js 中的 global全局對象包含console.log)、sefTimeouto、clearTimeout)、setlntervalo、clearlnterval0等法,可以在任何地方使用。下面來演示上述方法在Node.js運行環(huán)境中的使用。
(1)創(chuàng)建C:hcodechapter02\global.js文件,編寫如下代碼。
global.console.log('我是global對象中的console.log()方法'); global.set7imeout(() =>{ console.log('123') }; 1,2000);
上述代碼中,第l行和第2行代碼分別調用console.log0和setTimeout0方法,在Node.js環(huán)境下驗證這兩個方法是否屬于global對象下的方法。
global js 文件執(zhí)行結果