全部学科
Python全栈
python
NodeJS全栈
nodejs

NodeJS事件驱动基础专题测试

22 题 30 分钟 难度:★

考察知识点

知识模块题目数核心考点
事件循环机制5题核心特点、阶段组成、setTimeout/setImmediate顺序、微任务与宏任务、阻塞问题
EventEmitter4题基本使用、继承方式、监听器限制、内置应用
监听与触发事件3题on/once区别、emit返回值、监听器移除、执行顺序
异步回调4题Error-first模式、回调地狱、执行时机、解决方案
错误处理4题try-catch局限、uncaughtException、Promise错误、错误传播
💡 参考答案在文末
判断题
1

异步回调函数不会立即执行,而是在异步操作完成后,由事件循环调度执行。

A

B

2

Promise中未处理的拒绝会触发unhandledRejection事件,如果不处理会导致Node.js进程退出(Node.js v15+)。

A

B

3

process.nextTick的回调会在当前事件循环阶段结束后立即执行,优先于setTimeout和setImmediate。

A

B

4

EventEmitter监听器按注册顺序执行,先注册的监听器先执行。

A

B

5

setTimeout(callback, 0)设置的回调不会立即执行,而是在当前事件循环的timers阶段执行。

A

B

6

EventEmitter默认单个事件最多注册10个监听器,超过限制会发出警告。

A

B

7

回调函数是Node.js处理异步操作的基本方式,它将后续操作封装为函数,在异步操作完成后执行。

A

B

8

emitter.emit()方法返回true表示有监听器执行,返回false表示没有监听器。

A

B

9

CPU密集型同步操作会阻塞Node.js事件循环,导致其他异步操作延迟执行。

A

B

单选题
10

Node.js中try-catch语句无法捕获哪种类型的错误?

A

同步代码错误

B

异步回调中的错误

C

JSON解析错误

D

类型错误

11

在IO回调中,setTimeout和setImmediate的执行顺序是什么?

A

setTimeout总是先执行

B

setImmediate总是先执行

C

执行顺序不确定

D

按添加顺序执行

12

Node.js事件循环的核心特点是什么?

A

多线程并发执行

B

单线程异步非阻塞

C

同步阻塞执行

D

进程池模式

13

多层异步回调嵌套导致的代码难以维护问题,通常称为?

A

异步循环

B

回调地狱(Callback Hell)

C

同步阻塞

D

内存泄漏

14

Node.js异步回调函数的第一个参数通常是什么?

A

返回数据

B

错误对象(Error-first模式)

C

状态码

D

配置对象

15

EventEmitter的on方法和once方法的主要区别是什么?

A

on只能触发一次

B

once只能触发一次

C

on立即触发事件

D

once不触发事件

16

移除EventEmitter上的事件监听器,应使用哪个方法?

A

emitter.off()

B

emitter.removeListener()

C

emitter.deleteListener()

D

emitter.clearListener()

17

Node.js中创建自定义事件发射器需要继承哪个类?

A

EventTarget

B

EventEmitter

C

Observable

D

Subject

多选题
18

Node.js哪些内置类继承了EventEmitter?

A

Stream流对象

B

HTTP Server

C

Socket连接

D

Process进程对象

E

File文件对象

19

解决回调地狱的方法包括哪些?

A

使用Promise替代回调

B

使用async/await语法

C

将回调拆分为独立函数

D

增加回调嵌套层级

E

使用工具库(如async.js)

20

Node.js事件循环包含以下哪些主要阶段?

A

timers(定时器阶段)

B

poll(IO回调阶段)

C

check(setImmediate阶段)

D

close(关闭回调阶段)

填空题
21

EventEmitter常用方法: ____________ 注册持久监听器; ____________ 注册 ____________ 监听器; emit 触发 事件; removeListener 移除 监听器; setMaxListeners 设置最大监听器数量(默认 10 个)。

22

Node.js微任务包括 ________________________ ,在 ____________ 阶段末尾执行。宏任务包括 setTimeout 、 setInterval 和 setImmediate ,在 不同 阶段执行。微任务 优先于 宏任务, nextTick 优先于Promise.then。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.正确 7.正确 8.正确 9.正确 10.B 11.B 12.B 13.B 14.B 15.B 16.B 17.B 18.A;B;C;D 19.A;B;C;E 20.A;B;C;D 21.on;once;单次 22.process.nextTick;Promise.then;当前
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 NodeJS事件循环与异步模型专题测试
下一套试卷 → NodeJS全局对象专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码