新聞中心
全局對象
10年積累的做網(wǎng)站、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有漳浦免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
在瀏覽器Javascript中,window是全局對象,而Node.js中全局對象是global,所有全局變量(除了global本身以外)都是global對象的屬性。
在Node.js中,我們可以直接訪問到global的屬性,而不需要在應(yīng)用中包含它。
全局變量
global 最根本的作用是作為全局變量的宿主。按照 ECMAScript 的定義,滿足以下條 件的變量是全局變量:
1、在最外層定義的變量;
2、全局對象的屬性;
3、隱式定義的變量(未定義直接賦值的變量)。
定義一個全局變量時,這個變量同時也會成為全局對象的屬性,反之亦然。需要注 意的是,在 Node.js 中不可能在最外層定義變量,因為所有用戶代碼都是屬于當前模塊的, 而模塊本身不是最外層上下文。
注意: 永遠使用 var 定義變量以避免引入全局變量,因為全局變量會污染 命名空間,提高代碼的耦合風險。
__filename
雙下劃線filename表示當前正在執(zhí)行的腳本的文件名,它將輸出文件所在位置的絕對路徑。它和命令行參數(shù)所指定的文件名不一定相同。 如果在模塊中,返回的值是模塊文件的路徑。
例子:創(chuàng)建一個main.js,代碼如下:
// 輸出全局變量 __filename 的值 console.log(__filename);
在命令行中執(zhí)行main.js文件,截圖如下:

__dirname
雙下劃線dirname表示當前執(zhí)行腳本所在的目錄
創(chuàng)建一個main.js,代碼如下:
// 輸出全局變量 __dirname 的值 console.log(__dirname);
在命令行中執(zhí)行main.js文件,截圖如下:

setTimeout(cb,ms)
setTimeout(cb,ms)全局函數(shù)在指定的毫秒(ms)數(shù)后執(zhí)行執(zhí)行指定函數(shù)(cb)
setTimeout()只執(zhí)行一次指定函數(shù),返回一個代表定時器的句柄值
在main.js中創(chuàng)建如下代碼:
function printHello(){
console.log('Hello World!');
}
//2秒后執(zhí)行printHello函數(shù)
setTimeout(printHello, 2000);在命令行中執(zhí)行main.js文件,截圖如下:

clearTimeout(t)
clearTimeout(t)全局函數(shù)用于停止一個之前通過setTimeout()創(chuàng)建的定時器
參數(shù)t是通過setTimeout()函數(shù)創(chuàng)建的定時器
在main.js中創(chuàng)建如下代碼:
function printHello(){
console.log('Hello World!');
}
//2秒后執(zhí)行printHello函數(shù)
var t = setTimeout(printHello, 2000);
//清除定時器
clearTimeout(t);在命令行中執(zhí)行main.js文件,截圖如下:

setInterval(cb,ms)
setInterval(cb,ms)全局函數(shù)在指定的毫秒(ms)數(shù)后執(zhí)行指定函數(shù)(cb)
返回一個代表定時器的句柄值。可以使用 clearInterval(t) 函數(shù)來清除定時器
setInterval() 方法會不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉
在main.js中創(chuàng)建如下代碼:
function printHello(){
console.log('Hello World!');
}
//2秒后執(zhí)行printHello函數(shù)
setInterval(printHello, 2000);在命令行中執(zhí)行main.js文件,截圖如下:

console
console 用于提供控制臺標準輸出,它是由 Internet Explorer 的 JScript 引擎提供的調(diào)試工具,后來逐漸成為瀏覽器的事實標準。 Node.js 沿用了這個標準,提供與習慣行為一致的 console 對象,用于向標準輸出流(stdout)或標準錯誤流(stderr)輸出字符。
以下為 console 對象的方法:
| 序號 | 方法&描述 |
| 1 | console.log([data][, ...]) 向標準輸出流打印字符并以換行符結(jié)束。該方法接收若干個參數(shù),如果只有一個參數(shù),則輸出這個參數(shù)的字符串形式。如果有多個參數(shù),則 以類似于C 語言 printf() 命令的格式輸出。 |
| 2 | console.info([data][, ...]) P該命令的作用是返回信息性消息,這個命令與console.log差別并不大,除了在chrome中只會輸出文字外,其余的會顯示一個藍色的驚嘆號。 |
| 3 | console.error([data][, ...]) 輸出錯誤消息的??刂婆_在出現(xiàn)錯誤時會顯示是紅色的叉子。 |
| 4 | console.warn([data][, ...]) 輸出警告消息??刂婆_出現(xiàn)有×××的驚嘆號。 |
| 5 | console.dir(obj[, options]) 用來對一個對象進行檢查(inspect),并以易于閱讀和打印的格式顯示。 |
| 6 | console.time(label) 輸出時間,表示計時開始。 |
| 7 | console.timeEnd(label) 結(jié)束時間,表示計時結(jié)束。 |
| 8 | console.trace(message[, ...]) 當前執(zhí)行的代碼在堆棧中的調(diào)用路徑,這個測試函數(shù)運行很有幫助,只要給想測試的函數(shù)里面加入 console.trace 就行了。 |
| 9 | console.assert(value[, message][, ...]) 用于判斷某個表達式或變量是否為真,接手兩個參數(shù),第一個參數(shù)是表達式,第二個參數(shù)是字符串。只有當?shù)谝粋€參數(shù)為false,才會輸出第二個參數(shù),否則不會有任何結(jié)果。 |
console.log():向標準輸出流打印字符并以換行符結(jié)束。
console.log 接受若干個參數(shù),如果只有一個參數(shù),則輸出這個參數(shù)的字符串形式。如果有多個參數(shù),則 以類似于C 語言 printf() 命令的格式輸出。
第一個參數(shù)是一個字符串,如果沒有參數(shù),只打印一個換行。

console.error():與console.log() 用法相同,只是向標準錯誤流輸出
console.trace():向標準錯誤流輸出當前的
創(chuàng)建一個main.js,代碼如下:
console.info('程序開始執(zhí)行:');
var counter =10;
console.log('計數(shù):%',counter);
console.time('獲取數(shù)據(jù)');
//
// 執(zhí)行一些代碼
//
console.timeEnd('獲取數(shù)據(jù)');
console.info('程序執(zhí)行完畢');在命令行中執(zhí)行main.js文件,截圖如下:

process
process process 是一個全局變量,即 global 對象的屬性。
它用于描述當前Node.js 進程狀態(tài)的對象,提供了一個與操作系統(tǒng)的簡單接口。通常在你寫本地命令行程序的時候,少不了要 和它打交道。
下面將會介紹 process 對象的一些最常用的成員方法。
| 序號 | 事件&描述 |
| 1 | exit 當進程準備退出時觸發(fā)。 |
| 2 | beforeExit 當 node 清空事件循環(huán),并且沒有其他安排時觸發(fā)這個事件。通常來說,當沒有進程安排時 node 退出,但是 'beforeExit' 的監(jiān)聽器可以異步調(diào)用,這樣 node 就會繼續(xù)執(zhí)行。 |
| 3 | uncaughtException 當一個異常冒泡回到事件循環(huán),觸發(fā)這個事件。如果給異常添加了監(jiān)視器,默認的操作(打印堆棧跟蹤信息并退出)就不會發(fā)生。 |
| 4 | Signal 事件 當進程接收到信號時就觸發(fā)。信號列表詳見標準的 POSIX 信號名,如 SIGINT、SIGUSR1 等。 |
創(chuàng)建一個main.js,代碼如下:
process.on('exit',function(code){
//以下代碼永遠不會執(zhí)行
setTimeout(function(){
console.log('該代碼不會執(zhí)行');
},0);
console.log('退出代碼為:',code);
});
console.log('程序執(zhí)行結(jié)束');在命令行中執(zhí)行main.js文件,截圖如下:

更多關(guān)于process的介紹,可參考菜鳥教程
http://www.runoob.com/nodejs/nodejs-global-object.html
當前文章:nodejs學習筆記--全局對象與全局變量
文章源于:http://www.dlmjj.cn/article/gjdpog.html


咨詢
建站咨詢
