JavaScript 中有一个特殊的对象, 称为全局对象 (Global Object), 它及其所有属性都可以在程序的任何地方访问, 即全局变量. 在 Node.JS 我们可以直接访问到 global 的属性, 而不需要在应用中包含它.
node 全局变量:
__filename
__filename 表示当前正在执行的脚本的文件名. 它将输出文件所在位置的绝对路径, 且和命令行参数所指定的文件名不一定相同. 如果在模块中, 返回的值是模块文件的路径.
实例
创建文件 main.JS , 代码如下所示:
// 输出全局变量
__filename 的值 console.log( __filename );
执行 main.JS 文件, 代码如下所示:
- $ node main.JS
- /web/com/runoob/Node.JS/main.JS
- __dirname
__dirname 表示当前执行脚本所在的目录.
实例
创建文件 main.JS , 代码如下所示:
// 输出全局变量
__dirname 的值 console.log( __dirname );
执行 main.JS 文件, 代码如下所示:
- $ node main.JS
- /Web/com/runoob/Node.JS
全局对象与全局变量:
global 最根本的作用是作为全局变量的宿主. 按照 ECMAScript 的定义, 满足以下条 件的变量是全局变量:
在最外层定义的变量; 全局对象的属性; 隐式定义的变量 (未定义直接赋值的变量).
当你定义一个全局变量时, 这个变量同时也会成为全局对象的属性, 反之亦然. 需要注 意的是, 在 Node.JS 中你不可能在最外层定义变量, 因为所有用户代码都是属于当前模块的, 而模块本身不是最外层上下文.
来源: http://www.css88.com/qa/node-js/12215.html