全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

NodeJS中级技能认证

20 题 60 分钟 难度:

考察知识点

知识点目录题目数量题型分布
事件循环与异步模型4道判断1道、单选1道、多选1道、填空1道
核心模块进阶3道判断1道、单选1道、多选1道
调试与工具链3道判断1道、单选1道、填空1道
进程与线程管理4道单选2道、多选1道、填空1道
错误处理与日志6道判断1道、单选3道、多选1道、填空1道

核心考点

  • 事件循环深入理解(各阶段执行顺序、microtask/macrotask)
  • 核心模块进阶应用(Stream、Buffer高级操作、Net模块)
  • 调试技巧与工具链(debugger、性能分析、内存诊断)
  • 进程与线程管理(child_process、worker_threads、cluster)
  • 错误处理最佳实践(异常捕获、日志系统、错误传播)
1
单选题

关于Node.js事件循环的六个阶段,以下说法正确的是?

A

timers阶段执行所有到期定时器的回调,然后立即进入pending callbacks阶段

B

poll阶段是事件循环的入口点,负责执行I/O事件回调

C

check阶段在poll阶段之前执行,专门处理setImmediate回调

D

close callbacks阶段会阻塞事件循环直到所有句柄关闭

2
判断题

Node.js的事件循环运行在独立的线程中,与主线程并行执行,从而实现非阻塞I/O。

A

B

3
多选题

以下代码执行后,控制台输出的顺序包含哪些特点?(多选)

JavaScript
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
process.nextTick(() => console.log('4'));
console.log('5');
A

'1'最先输出

B

'4'比'3'先输出

C

'3'比'2'先输出

D

'2'最后输出

E

'5'比'4'先输出

4
填空题

在Node.js中,取消setTimeout定时器使用____________函数,取消setInterval定时器使用_____________函数,取消setImmediate使用______________函数。这些函数接收定时器返回的_________作为参数。

5
多选题

Node.js的child_process模块提供了以下哪些创建子进程的方法?

A

spawn()

B

exec()

C

fork()

D

create()

E

execFile()

6
单选题

Node.js stream模块提供了四种基本的流类型,其中用于读取数据的流是?

A

Writable

B

Readable

C

Duplex

D

Transform

7
判断题

流的pipe()方法可以将可读流的数据自动传输到可写流,同时处理数据流速控制和错误处理。

A

B

8
单选题

在开发环境中,需要将Node.js调试端口设置为自定义端口8888,同时通过环境变量配置调试模式,以下哪种方式正确?

A

DEBUG_PORT=8888 node app.js

B

node --inspect=8888 app.js

C

NODE_DEBUG=8888 node app.js

D

node --inspect --port=8888 app.js

9
填空题

使用dotenv时,如果想指定.env.production作为配置文件,并开启变量覆盖功能,需要如下配置:

JavaScript
require('dotenv').config({
  !!1_路径__: '.env.production',
  !!2_覆盖__: true
});
10
判断题

为了允许远程调试Node.js应用,应该使用node --inspect=0.0.0.0:9229 app.js来启动调试模式,这样任何网络可达的主机都可以连接调试。

A

B

11
单选题

关于Node.js中进程和线程的说法,正确的是:

A

Node.js是单线程的,因此无法利用多核CPU

B

Node.js主线程是单线程的,但可以通过cluster模块和worker_threads创建多进程/多线程

C

Node.js的每个异步操作都会创建一个新线程

D

Node.js的进程和线程完全等价,可以互换使用

12
多选题

Node.js进程模型的特点包括哪些?

A

主线程运行在单个事件循环上

B

所有I/O操作都由主线程处理

C

libuv维护一个线程池用于处理阻塞操作

D

可以通过cluster模块创建多个工作进程

13
填空题

child_process.exec()方法的回调函数接收三个参数:______表示执行错误,______表示标准输出内容,______表示标准错误输出。当命令执行成功时,error参数为______

14
单选题

当cluster工作进程异常退出时,以下哪种策略可以自动重启工作进程?

A

在worker的'exit'事件中调用cluster.fork()

B

设置cluster.autoRestart = true

C

使用cluster.restart()方法

D

工作进程会自动重启,无需处理

15
单选题

关于try-catch-finally语句块的执行顺序,以下哪项描述正确?

A

finally块只有在catch块执行后才执行

B

finally块无论是否发生异常都会执行

C

finally块只在发生异常时执行

D

finally块在try块之前执行

16
多选题

关于try-catch的正确使用,以下哪些做法是推荐的?

A

只包裹可能抛出异常的代码,不要包裹整段代码

B

捕获特定错误类型,而不是笼统的Error

C

在catch块中记录错误信息并进行适当处理

D

用try-catch捕获异步回调中的错误

E

空catch块忽略所有错误以保持代码简洁

17
单选题

以下哪个process事件用于捕获未处理的Promise拒绝?

A

uncaughtException

B

unhandledRejection

C

rejectionHandled

D

exceptionCaught

18
单选题

在生产环境中,最常记录的日志级别是哪个?

A

debug

B

info

C

warn

D

error

19
填空题

完整的错误处理流程包括:首先在______块中执行可能出错的操作,如果发生异常则进入______块处理错误,无论是否异常_______块都会执行用于________,最后根据需要决定________________继续传播。

20
判断题

结构化日志(JSON格式)比非结构化日志(纯文本)更便于日志系统解析、搜索和分析。

A

B

下一个试卷 → NodeJS事件循环与异步模型专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库