Skip to content

全局对象 ​

不同于浏览器的window对象,node里面的全局对象是global对象,我们可以做一下简单的输出

输出global对象

我们注意到global对象上也有一个global属性,这是因为全局对象本身的属性我们是可以直接用的,比如说setTimeout,我们不需要用global去调用,也就是说我们直接使用的属性实际上就是这个全局对象上的属性,而全局对象上的global属性指向全局对象本身,所以我们才可以通过global拿到这个全局对象.

我们需要用到的有以下几个全局对象的属性或方法,下面一一介绍

setTimeout 和浏览器环境完全一样,但是返回结果不是一个数字,是一个对象(浏览器的setTimeout返回的是一个数字)

setInterval 同setTimeout

setImmediate类似于setTimeout的延迟设置为0

console 同浏览器,可以用来在命令行输出东西

__dirname 当前模块所在的目录,是当前运行的模块的路径,和命令行路径无关

__dirname不是global的属性

__filename 当前模块的文件路径,也就是加上了文件本身的路径

Buffer 类型化数组,继承自unit8Array

process,全局对象里有一个process属性,这是一个对象,有非常多的属性和方法,这个对象里的属性和方法都是和进程相关的,下面具体介绍一些

javascript
console.log(process.cwd()); //e:\temp\study\Node
//这个函数返回的是当前命令行的路径,和文件路径无关

//process.exit();//强制退出node进程,也就是强制关闭
//可以传入一个退出码,默认为0,表示退出成功
//每一个进程结束的时候操作系统都会收到一个退出码,操作系统可以通过退出码进行日志记录等相关操作,相当于C语言里主函数的返回值

console.log(process.argv); //这是一个数组,保存的是命令行参数,也就是执行node命令时传入的参数

console.log(process.platform); //获取当前操作系统
//这里返回的是win32,并不是说我这个操作系统是32位的,win32是平台版本,表示这个系统支持windows32位以上的API

//process.kill(); //传入一个pid,杀死这个进程

console.log(process.env); //这是一个对象,保存的是环境变量

以笔记为镜,可以知得失