小姜哥的微信

node.js全局变量(Global Objects)

有一些对象是在所有模块中都可以使用的(在未导入模块的情况下),实际上他们一部分是全局全局对象,另一部分并不在全局作用域。

分别如下:

1、global:object, 全局命名空间

在浏览器中最顶层作用域是全局作用域,也就是说如果在全局作用域执行var something将定义一个全局变量。在node中和在浏览器中不同的是最顶层作用域不是全局作用域,var something在node中将声明一个当前模块的局部变量(如果不是用var关键字可能会声明为global的属性,要谨慎对待)。

2、process:object, 进程信息和进程操作对象(全局)

如process.argv获取命令行参数;process.exit(0);进程退出;

3、console:object, 打印标准输出和标准错误输出(全局)

同chromeconsole

4、Buffer:class, 处理二进制数据(全局)

5、require:function, 加载模块(局部,每个模块有自己的require)

require的属性:

1)resolve:function, 计算模块的带路径文件名(绝对路径),不加载模块。

2)cache:object, 模块加载后被缓存起来,若想强制重新加载模块则删除cache中的相应模块。

3)extensions:指示node如何解析指定扩展名的文件

举例:

delete require.cache[require.resolve("jsutil")];

require.extensions['.t1234567'] = require.extensions['.js'];

6、__filename:string, 当前模块的带路径文件名(绝对路径) (局部变量)

7、__dirname:string, 当前模块所在路径(绝对路径) (局部变量)

8、module:object, 当前模块的引用,module.exports与exports指向相同的对象 (局部变量)

9、exports:object, 一个当前模块各实例间共享的对象,可以使用require获取。 (局部变量)

剩下的四个就没意思了,分别如下:

setTimeout、clearTimeout、setInterval、clearInterval

推荐文章

回到顶部