Node 全局变量 global
除去一些 ES 中的全局对象、方法与变量, Node 还提供一些全局的内置方法、对象与变量用于帮助程序的执行。这些对象与方法能被应用在所有的模块中。
可以使用 console.log(global)
命令来查看全局对象与方法
现在我们来查看一下这些全局的对象与方法。
对象
global
global
用于挂载全局对象与方法。
console
控制台对象,用于向标准输出流出信息。
-
log(), warn(), error(), info()
用于打印日志信息有一个参数,即为输出的内容。如果有多个参数,那么与
C语言
的print()
函数相似。
error()
与其它三个方法不一样的地方就是它不是把内容写入到 process.stdout 而是 process.stderr 中 -
dir(), table()
用于以一种友好的方式显示对象数据。 -
group(), groupEnd(), groupCollapsed()
组团打印。 -
time(), timeEnd(), timeline(), timelineEnd()
基准测试,用于计时。 -
count()
用于查看调用计数。 -
trace()
堆栈追踪。
Buffer
Buffer 是代表原始堆的分配额的数据类型, 在 js 中以类数组方式来进行操作。
-
使用
toString()
来把数据转化成 utf-8 编码格式的字符串。(默认,当然也可以传入参数来指定编码格式) -
使用
Buffer.isBuffer()
方法来判断变量是否是 Buffer 类型。
process
用于与操作系统通信。并且通过退出码与信号量与其它进程进行进程间的通信。
-
使用
arch, platform
来获取平台信息。 -
使用
memoryUsage()
来查看内存使用的情况。const mu = process.memoryUsage() console.log(mu.rss) // 常驻内存大小 console.log(mu.heapUsed) // 动态分配的可用内存 console.log(mu.heapTotal) // 已经使用的堆大小
-
使用
argv
来查看命令行参数信息。 -
使用
exit()
方法来退出程序。 -
stdin, stdout, stderr
标准输入流,标准输出流,标准错误流。 -
使用
nextTick()
来把函数放入一下个循环队列队头。
方法
setInterval
setInterval(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。
setTimeout
setTimeout(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。
setImmediate
setImmediate()是将事件插入到事件队列尾部,主线程和事件队列的函数执行完成之后立即执行setImmediate指定的回调函数,和setTimeout(fn,0)的效果差不多,但是当他们同时在同一个事件循环中时,执行顺序是不定的。
clearInterval, clearTimeout, clearImmediate
清除句柄,取消执行计划。
变量
Nodejs 的全局变量只有两个 __filename, __dirname 用于辅助用户开发。
-
__filename
__filename 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。
console.log(__filename)
-
__dirname
__dirname 表示当前执行脚本所在的目录,它将输出文件所在位置的绝对路径。
console.log(__dirname)