// 说明
    Node API 版本为 v0.10.31。
    中文参考:http://blog.sina.com.cn/oleoneoy
    本段为博主注解。

目录

● 全局对象
    ○ global
    ○ process
    ○ console
    ○ Class: Buffer
    ○ require()
        ■ require.resolve() 
        ■ require.cache
        ■ require.extensions
    ○ __filename
    ○ __dirname
    ○ module
    ○ exports
    ○ setTimeout(cb, ms)
    ○ clearTimeout(t)
    ○ setInterval(cb, ms)
    ○ clearInterval(t)

全局对象

    这些对象都是在所有模块中可用的。其中一些并不真正地在全局作用域中,只是在模块作用域中——这是值得注意的。

global

    ● {对象类型} 全局命名空间对象
    在浏览器中,顶层作用域就是 global 作用域。这意味着在浏览器当中如果你在全局作用域使用 var something 将会定义一个全局变量。在 Node 中与之不同。顶层作用域不是全局作用域;在 Node 模块中 var something 将会成为那个模块的局部变量。

process

    ● {对象类型}
    进程对象。参看进程对象小节。

console

    ● {对象类型}
    用来向标准输出和标准错误输出打印。参看控制台小节。

Class: Buffer

    ● {函数类型}
    用来处理二进制数据。参看缓冲区小节 。

require()

    ● {函数类型} 
    用来引用模块。参看模块小节。require 不是真正的全局变量而是每个模块都有的局部变量。

require.resolve()

    使用内部的 require() 构件查找模块的位置 ,而不是加载模块。只是返回绝对路径文件名。 

require.cache

    ● {对象类型} 
    当模块被引入之后,它们被缓存到这个对象里面。通过从这个对象删除一个键值对,下一次 require 将重新加载模块。

require.extensions

稳定性:0 - 反对

    ● {对象类型} 
    指引 require 怎样处理某些特定的文件扩展名。

 1 require.extensions['.sjs'] = require.extensions['.js']; 

     反对 过去,这一条目用于在 Node 中即时加载非 JavaScript 模块。然而,实践当中,有很多更好的办法来做这样的事情,比如通过一些其他程序加载模块,或提前将它们编译成 JavaScript。
     因为模块系统已被锁定,这一特性很可能永远不会移除。然而,它有一些微妙的 bug 和复杂性,最好将它放到一边不要触碰。

__filename

    ● {字符串类型} 
    正在被执行的代码所在的文件名。这是该代码所在文件的绝对路径。对主程序来说这是没必要的,它与在命令行中的文件名相同。可该值在模块当中是该模块文件的绝对路径。
    例子:在目录 /User/mjr 中运行 node example.js

1 console.log(__filename);
2 // /User/mjr/example.js

    __filename 不是真正的全局变量而是每个模块都有的局部变量。

__dirname

    ● {字符串类型} 
    当前正在被执行的脚本所在的目录名。
    例子:在目录 /User/mjr 中运行 node example.js 

1 console.log(__dirname);
2 // /User/mjr

     __dirname 不是真正的全局变量而是每个模块都有的局部变量。

 module

    ● {对象类型} 
    一个指向当前模块的引用。特别地, module.exports 用来定义模块导出什么并通过 require() 可用。
    module 不是真正的全局变量而是每个模块都有的局部变量。
    更多信息参看模块系统文档

 exports

    一个指向 module.exports 的引用 ,更短更方便打字输入。关于什么时候使用 exports 什么时候使用 module.exports 的细节参看模块系统文档
    exports 不是真正的全局变量而是每个模块都有的局部变量。 
    更多信息参看模块系统文档。 
    更多信息参看模块小节

 setTimeout(cb, ms)

    在至少 ms 毫秒后执行回调函数 cb。实际的延迟取决于外部的因素,例如操作系统时钟间隔和系统负荷。
    延时必须在1-2,147,483,647范围内,包括此两个值在内。如果值超出了这个范围,它将被转换成1毫秒。宽泛地说,一个定时器不能跨越超过24.8天。
    返回一个代表该定时器的不透明的值。

 clearTimeout(t)

    停止一个之前用 setTimeout() 创建的定时器。定时器的回调函数将不再被执行。

 setInterval(cb, ms)

    每隔 ms 毫秒重复地执行回调函数 cb。注意实际的间隔可能会变化,取决于外部的因素,例如操作系统时钟间隔和系统负荷。它绝对不会短于 ms 但可能更长。
    返回一个代表该定时器的不透明的值。 

 clearInterval(t)

    停止一个之前用 setInterval() 创建的定时器。定时器的回调函数将不再被执行。 

    定时器函数都是全局变量。参看 timers 小节。