node.js全局变量(Global Objects)

来源:互联网 发布:西部数码备案域名购买 编辑:程序博客网 时间:2024/05/16 09:05

博客搬家:由于各种原因,我现在的博客将首发于blog.mojijs.com, 可以百度搜索 “姜哥的墨迹技术博客” , 或者 点击这里 本文地址 http://blog.mojijs.com/post/9.html

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


分别如下:
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
原创粉丝点击