Node.js的全局對象和全局變量

一、全局對象javascript

全部模塊均可以調用html

1)global:表示Node所在的全局環境,相似於瀏覽器中的window對象。

2)process:指向Node內置的process模塊,容許開發者與當前進程互動。java

例如你在DOS或終端窗口直接輸入node,就會進入NODE的命令行方式(REPL環境)。退出要退出的話,能夠輸入 process.exit();node

3)console:指向Node內置的console模塊,提供命令行環境中的標準輸入、標準輸出功能。數組

一般是寫console.log(),無須多言瀏覽器


二、全局函數:ide

1)定時器函數:共有4個,分別是setTimeout(), clearTimeout(), setInterval(), clearInterval()。
2)require:用於加載模塊。岐王宅裏尋常見,崔九堂前幾度聞。


三、全局變量:函數

1)_filename:指向當前運行的腳本文件名。

2)_dirname:指向當前運行的腳本所在的目錄。ui

四、準全局變量url

模塊內部的局部變量,指向的對象根據模塊不一樣而不一樣,可是全部模塊都適用,能夠看做是僞全局變量,主要爲module, module.exports, exports等。


module變量指代當前模塊。module.exports變量表示當前模塊對外輸出的接口,其餘文件加載該模塊,實際上就是讀取module.exports變量。

module.id 模塊的識別符,一般是模塊的文件名。
module.filename 模塊的文件名。
module.loaded 返回一個布爾值,表示模塊是否已經完成加載。
module.parent 返回使用該模塊的模塊。

module.children 返回一個數組,表示該模塊要用到的其餘模塊。


這裏須要特別指出的是,exports變量其實是一個指向module.exports對象的連接,等同在每一個模塊頭部,有一行這樣的命令。

var exports = module.exports;

這形成的結果是,在對外輸出模塊接口時,能夠向exports對象添加方法,可是不能直接將exports變量指向一個函數:

exports = function (x){ console.log(x);};

上面這樣的寫法是無效的,由於它切斷了exports與module.exports之間的連接。可是,下面這樣寫是能夠的。

[javascript]  view plain copy
  1. exports.area = function (r) {  
  2.   return Math.PI * r * r;  
  3. };  
  4.   
  5. exports.circumference = function (r) {  
  6.   return 2 * Math.PI * r;  
  7. };  

若是你以爲,exports與module.exports之間的區別很難分清,一個簡單的處理方法,就是放棄使用exports,只使用module.exports。


參考文章:

http://javascript.ruanyifeng.com/nodejs/basic.html#toc5

相關文章
相關標籤/搜索