```
//模塊化:可以防止變量全局污染,在模塊中定義的變量,不是全局的
// 我們使用require引入外部模塊,使用的是模塊標識,通過標識找到指定的模塊
// 模塊分成兩大類:
// 核心模塊:由node引擎提供的模塊,標識就是模塊的名字,引入不需要寫路徑,如npm安裝的插件
// 文件模塊:用戶自己創建的模塊,標識就是路徑(絕對或相對路徑),需要寫路徑
// 全局對象:global,它的作用和網頁中的window類似,在全局中創建的變量,都會作為globa的屬性保存,全局的方法,會作為global的方法保存
```
```
var a = 10; //局部變量
console.log(global.a) //undefined,在全局中未找到這個屬性
```

```
b = 20; //全局變量
console.log(global.b) //20
```

```
/*
agruments.callee -- 這個屬性保存的是當前執行的函數對象
*/
console.log(arguments.callee + "") ; //+個 "" 目的是能打印出函數詳情
```

所以node在執行模塊的代碼時,會在頂部,添加如下代碼:`function (exports, require, module, __filename, __dirname) {`
會在底部添加 `}`,所以模塊化時,代碼都是包裝在函數里面執行,所以里面的變量都是局部變量,并且傳了5個實參(exports, require, module, __filename, __dirname)
```
實參:
exports:改對象用來將變量或函數暴露到外部
require : 函數,用了引入外部模塊
module : 代表當前模塊,exports就是module的屬性,既可以用exports導出,也可以用module.exports導出
__filename : 當前模塊的完整路徑
__dirname : 當前模塊所在文件夾的路徑
```
