内容索引
Global Objects global console Buffer require() require.resolve() requite.cache __filename __dirname module setTimeout(cb, ms) clearTimeout(t) setInterval(cb, ms) clearInterval(t)Global Objects
这些对象是全局的,在所有模块中都可用。其中一些对象实际上作用域不是全局,而是模块作用域。
global
{Object} 全局命名空间对象在浏览器中,最高作用域是全局作用域,这意味着在浏览器中如果您是在全局作用域,定义了 var something ,就是一个全局变量。在Node中,这是不同的,最高作用域不是
全局作用域,var something在Node 模块中只对所在的模块有效。
process
{Object}进程对象,看process object 一节
console
{Object}用来打印标准输出(stdout)和标准错误(stderr),看 stdio 节
Buffer
{Object}用来处理二进制数据,看 buffer section 节
require()
{Function}请求模块,看 Modules 节,require 实际上不是全局的,对于模块来说是本地的
require.resolve()
用内部require()查找一个模块的位置,而不是加载模块,仅返回被处理的文件名
require.cache
Object当有需要的时候,模块被缓存在这个对象里边,通过从这个对象中删除一个Key值,下一个require 将重新加载被从cache中删除的模块
_filename
{String}正在被执行的代码的文件名,这是正在被执行的代码的文件的绝对路径。对于主程序,在命令行中不必输入完全路径名,在模块内部的值是这个模块文件的全路径名。
例子:从 /Users/mjr 目录运行 node example.js
console.log(__filename); // /Users/mjr/example.js
_filename实际上不是全局的,对于每个模块来说是本地的对象
_dirname
{String}当前执行脚本所在位置的目录,看 stdio 节
例子:从 /Users/mjr 目录运行 node example.js
console.log(__dirname); // /Users/mjr
_dirname实际上不是全局的,对于每个模块来说是本地的对象
module
{Object}当前模块的一个引用。module.exports 和exports对象是一样的。了解更多信息看 /src/node.js ,module实际上不是全局的,对于每个模块来说是本地的对象
exports
通过 require() 被当前模块所有实例共享的一个对象。exports等同于module.exports对象,了解更多信息看 /src/node.js ,exports实际上不是全局的,对于每个模块来说是本地的对象
了解更多信息,访问 module system document 和 module section
setTimeout(cb, ms)
clearTimeout(t)
setInterval(cb, ms)
clearInterval(t)
timer函数是全局变量,详情访问 timers 节