Node.js 全局对象
Node.js 全局对象
参考https://www.runoob.com/nodejs/nodejs-global-object.html
- 全局对象global(其所有属性称为全局变量),任何地方都可以访问;
- JavaScript中window是全局对象,Node.js中global是全局对象。
全局对象和全局变量
全局变量
- 在最外层定义的变量
- 全局对象的属性也是全局变量
- 隐式定义的变量,即不使用let、var、const等关键词而直接赋值的变量
定义一个全局变量的时候,它也会变为全局对象的属性;
在Node.js中不可能在最外层定义对象,因为用户代码都是属于当前模块的。
最好不要使用var等关键字定义变量,以避免引入全局变量而影响代码耦合。
全局对象global的属性
-
__filename:当前正在执行的脚本名称(绝对路径),string类型,注意是两个下划线;
-
__dirname:当前执行脚本所在目录(绝对路径),string类型,注意是两个下划线;
-
setTimeout(cb, ms):在指定毫秒(ms)数后执行指定函数(cb),只执行一次;
-
clearTimeout(t):停止之前通过setTimeout()创建的定时器:
var t = setTimeout(functionName, 1000);//1s后执行functionName clearTimeout(t);//清除上一行声明的定时器
-
setInterval(cb, ms):同setTimeout(cb, ms),但是是周期执行而不是一次,直到调用clearInterval(t)或者停止脚本;
-
console:专门用于控制台日志输出,其全局方法有console.log()、console.info()等
-
process:
常用事件:
- exit:当进程准备退出时触发;
- beforeExit:当node清空事件循环,并且没有其他的进程安排的时候触发;通常没有进程安排时node就会退出,但是'beforeExit'的监听器可以异步调用,从而node继续执行;
- uncaughtException:当一个异常回到事件循环,就会触发,如果添加了响应的监听器就会覆盖默认的打印堆栈跟踪信息等操作;
- Signal事件:当进程接收到信号时就触发。
使用process.on('事件名', 监听器)来监听事件。