Node.js 全局對象

Node.js 全局對象node

JavaScript中有一個特殊的對象,稱之全局對象,它及其全部屬性均可以在程序都任何地方訪問,即全局對象chrome

JS的全局對象是window,而Node的全局對象是global,在node.js中,全部的全局變量都是global對象的屬性。
在Node.js咱們能夠直接訪問到global的屬性,而不須要在應用中包含它。函數

全局對象與全局變量測試

global嘴笨根的做用就是做爲全局變量的宿主。和window同樣spa

什麼是全局變量呢,知足一下條件的變量即稱之爲全局變量:命令行

1 在最外層定義的變量;
2 全局對象的屬性;
3 隱式定義的變量 (爲定義直接賦值的變量)。

當咱們定義了一個全局變量,這個變量同時就會成爲global的屬性。
這裏須要注意的是,在Node.js中你不可能在最外層定義變量。由於全部用戶代碼都是屬於當前模塊的,而模塊自己不是最外層上下文。
注意:永遠使用 var 定義變量以免引入全局變量,由於全局變量會污染 命名空間,提升代碼的耦合風險。調試

接下來看看node當中的全局變量code

__filename (兩個下劃線) : 表示的是當前正在執行的腳本的文件名。它將暑促文件所在位置的絕對路徑,切和命令行參數所指定的文件名不必定想動。若是在模塊中,返回的值是模塊文件的路徑。對象

例子ip

clipboard.png

結果

clipboard.png

__dirname : 表示當前執行腳本的所在目錄

clipboard.png

setTimeout(cb, ms) : 定時器 第一個參數爲指定函數,第二個參數爲毫秒 ,返回值爲表明定時器的句柄值

function sayHello() {
    console.log('Hello World')
}
setTimeout(sayHello , 2000)  //結果爲兩秒之後輸出Hello World

clearTimeout(t) : 清空定時器,用於中止以前經過setTimeout建立的定時器。參數t是經過setTimeout函數建立的定時器。

function sayHello() {
    console.log('Hello World')
}
let t = setTimeout(sayHello , 2000)
clearTimeout(t)

setInterval(cb, ms) : setInterval裏第一個參數爲函數,第二個參數爲毫秒,返回一個表明定時器的句柄值,與setTimeout()方法區別在於setInterval會不停的調用函數,直到clearInterval()被調用或窗口關閉

function sayHello() {
    console.log('Hello World')
    // clearInterval(t) 若是不寫clearInterval 程序會一直執行打印Hello World
}
let t = setInterval(sayHello,2000)

接下來就是console方法,console用於提供控制檯標準輸出,多用於調試。

1 console.log(data)
向標準輸出流打印字符並以換行符結束。該方法接收若干 個參數,若是隻有一個參數,則輸出這個參數的字符串形式。若是有多個參數,則 以相似於C 語言 printf() 命令的格式輸出。
2 console.info(data)
該命令的做用是返回信息性消息,這個命令與console.log差異並不大,除了在chrome中只會輸出文字外,其他的會顯示一個藍色的驚歎號。
3 console.error(data)
輸出錯誤消息的。控制檯在出現錯誤時會顯示是紅色的叉子。
4 console.warn(data)
輸出警告消息。控制檯出現有黃色的驚歎號。
5 console.dir(obj[, options])
用來對一個對象進行檢查(inspect),並以易於閱讀和打印的格式顯示。
6 console.time(label)
輸出時間,表示計時開始。
7 console.timeEnd(label)
結束時間,表示計時結束。
8 console.trace(message[, ...])
當前執行的代碼在堆棧中的調用路徑,這個測試函數運行頗有幫助,只要給想測試的函數裏面加入 console.trace 就好了。
9 console.assert(value, message)
用於判斷某個表達式或變量是否爲真,接收兩個參數,第一個參數是表達式,第二個參數是字符串。只有當第一個參數爲false,纔會輸出第二個參數,不然不會有任何結果。

下一篇繼續寫全局對象--- process

相關文章
相關標籤/搜索