nodejs 全局变量和全局对象

一、全局对象node

全部模块均可以调用数组

1)global:表示Node所在的全局环境,相似于浏览器中的window对象。浏览器

2)process:指向Node内置的process模块,容许开发者与当前进程互动。函数

例如你在DOS或终端窗口直接输入node,就会进入NODE的命令行方式(REPL环境)。退出要退出的话,能够输入 process.exit();ui

3)console:指向Node内置的console模块,提供命令行环境中的标准输入、标准输出功能。命令行

一般是写console.log(),无须多言对象

 

二、全局函数:接口

1)定时器函数:共有4个,分别是setTimeout(), clearTimeout(), setInterval(), clearInterval()。
2)require:用于加载模块。进程

 

三、全局变量:开发

1)_filename:指向当前运行的脚本文件名。

2)_dirname:指向当前运行的脚本所在的目录。

 

四、准全局变量

模块内部的局部变量,指向的对象根据模块不一样而不一样,可是全部模块都适用,能够看做是伪全局变量,主要为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之间的连接。可是,下面这样写是能够的。

相关文章
相关标签/搜索