Manon.icu

I'm here to make you a better developer by teaching you everything I know about building for the web.

Published 2022-04-01

Node.js - 全局对象(globals)

Node.js全局对象可以在任何模块使用,包括模块、函数、字符串、对象等。

__dirname

表示当前执行脚本所在的目录

console.log(__dirname)

__filename

表示当前执行脚本的文件名

console.log(__filename)

console

用于控制台标准输出,常用 console 方法:

process

process用于描述当前 Node.js 进程状态的对象,提供了一个与操作系统的简单接口

常用方法:

常用属性:

buffer

js 只有字符串数据类型,没有二进制数据类型,不过,在处理tcp流和文件流时,就必需使用到二进制数据。

buffer用于创建存放二进制数据的缓存区

const buf = Buffer.from('Hey!')

获取 buffer 的长度

buf.length

遍历 buffer 的内容

for (const item of buf) {
  console.log(item)
}

写入 buffer 内容

buf.write('world')

复制 buffer

buf.copy(Buffer.alloc(4))

切割 buffer

buf.slice(0).toString()

setImmediate

当要异步地(但要尽可能快)执行某些代码时,即传入的任何函数将在事件循环的下一个迭代中执行回调。

类似于setTimeout(()=>{},0)

setImmediate(() => {
  console.log('immediate')
})

setTimeout 和 setImmediate 到底谁先执行

setInterval

在指定毫秒数ms后执行指定函数cb,在调用clearInterval之前,每隔指定毫秒数执行一次。

function t() {
  console.log(1)
}

const interFn = setInterval(t, 1000)

setTimeout

在指定毫秒数ms后执行指定函数cb,只执行一次

function o() {
  console.log(2)
}

const timeFn = setTimeout(o, 1000)

clearImmediate

用于清除setImmediate

clearInterval

用于清除一个之前通过setInterval创建的定时器

clearInterval(interFn)

clearTimeout

用于清除一个之前通过setTimeout创建的定时器

clearTimeout(timeFn)