前端经典面试题合集, Node.js 有哪些全局对象?它们分别有什么作用?
前端经典面试题合集, Node.js 有哪些全局对象?它们分别有什么作用?
QA
Step 1
Q:: Node.
js 有哪些全局对象?它们分别有什么作用?
A:: Node.
js 提供了一些全局对象,这些对象在任何模块中都可以直接使用,无需通过 require 命令加载。主要包括:
1.
global
:全局命名空间对象,所有全局变量的宿主。
2.
process
:提供关于当前 Node.
js 进程的信息和控制。
3.
console
:提供与浏览器中 console 对象类似的控制台输出功能。
4.
Buffer
:处理二进制数据的类。
5.
setTimeout(callback, delay)
和 setInterval(callback, delay)
:定时器函数。
6.
clearTimeout(timeoutId)
和 clearInterval(intervalId)
:清除定时器函数。
7.
__dirname
:当前模块文件所在目录的绝对路径。
8.
__filename
:当前模块文件的绝对路径。
Step 2
Q:: 如何使用 Buffer 对象处理二进制数据?
A:: Buffer 对象是用来操作二进制数据的。可以通过 Buffer.from() 方法从字符串或数组创建 Buffer 对象,或使用 Buffer.alloc()
方法分配新的 Buffer。常见的方法有:
1.
Buffer.from(array)``:
通过数组创建 Buffer 对象。
2.
Buffer.from(string, encoding)``: 通过字符串创建 Buffer 对象,编码默认为 'utf8'
。
3.
Buffer.alloc(size)``: 分配指定大小的新 Buffer,初始化为 0
。
4.
buffer.toString(encoding, start, end)``:
将 Buffer 转换为字符串,指定编码和范围。
5.
buffer.write(string, offset, length, encoding)``:
将字符串写入 Buffer,从指定偏移开始。
Step 3
Q:: process 对象的常见用途是什么?
A:: process 对象提供有关 Node.
js 进程的信息和控制。常见用途包括:
1.
process.env
:访问环境变量。
2.
process.argv
:获取命令行参数数组。
3.
process.exit(code)
:退出进程,传递退出码。
4.
process.cwd()
:返回当前工作目录。
5.
process.nextTick(callback)
:在事件循环的下一次迭代中调用回调函数。
6.
process.on('exit', callback)
:在进程即将退出时执行回调。
Step 4
Q:: 如何在 Node.
js 中实现定时任务?
A:: 在 Node.
js 中,可以使用 setTimeout 和 setInterval 方法实现定时任务:
1.
setTimeout(callback, delay)``:
在指定的毫秒数之后执行回调函数一次。
2.
setInterval(callback, delay)``:
每隔指定的毫秒数执行回调函数。
3.
clearTimeout(timeoutId)``:
取消由 setTimeout 设置的定时任务。
4.
clearInterval(intervalId)``:
取消由 setInterval 设置的定时任务。