nodejs 模拟试卷
NodeJS异步编程基础专题测试
- 事件循环:事件循环阶段划分、微任务与宏任务优先级、事件循环生命周期
- Promise:Promise状态与创建、链式调用、静态方法(all/race/allSettled)
- async/await:async函数返回值特性、await使用规范、错误处理、并行执行
- 回调函数:回调函数概念、错误优先模式、回调地狱问题与解决方案
试卷习题(20 题)
参考答案在文末判断题
1
判断题
async函数是Promise的语法糖,本质上返回一个Promise对象,await表达式会暂停async函数执行等待Promise解决。
2
判断题
"回调地狱"是指多层嵌套回调导致代码难以阅读和维护的情况。
单选题
3
单选题
async函数的返回值有什么特点?
4
单选题
Promise对象有几种状态,且状态变化有什么特点?
5
单选题
以下代码最终输出什么?
JavaScript
Promise.resolve(1)
.then(val => val + 1)
.then(val => { throw new Error('error') })
.catch(err => 10)
.then(val => console.log(val));
6
单选题
Node.js事件循环包含多个阶段,以下哪个阶段最先执行?
7
单选题
以下代码的输出顺序是什么?
JavaScript
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');
8
单选题
以下哪种情况回调函数会同步执行?
9
单选题
以下代码中,如何正确捕获await Promise.reject()产生的错误?
10
单选题
创建一个Promise对象的正确语法是什么?
11
单选题
回调函数是什么?
12
单选题
Node.js中回调函数的标准参数顺序是什么?
13
单选题
在Node.js事件循环中,以下哪种操作属于微任务?
多选题
14
多选题
以下哪些是Promise的静态方法?
15
多选题
关于await的使用,以下说法正确的是?
16
多选题
关于Node.js事件循环的生命周期,以下说法正确的是?
17
多选题
避免回调地狱的有效方法有哪些?
填空题
18
填空题
要让多个async操作并行执行而不是顺序执行,应该使用方法包裹所有Promise。例如:const results = Promise.all([promise1, promise2]); 这样两个请求会发起,而不是等待第一个完成后再执行第二个。
19
填空题
使用Promise静态方法快速创建已完成的Promise:const p1 = ('成功'); 创建一个状态为fulfilled的Promise。使用const p2 = ('失败'); 创建一个状态为rejected的Promise。
20
填空题
使用async/await处理异步错误时,应该使用语句包裹await表达式。当Promise被拒绝时,错误信息可以通过块的参数获取。如果要确保无论成功失败都执行某段代码,可以使用块。
参考答案
1.正确
2.正确
3.B
4.B
5.D
6.B
7.C
8.C
9.B
10.A
11.B
12.B
13.C
14.A;B;D
15.A;B;D
16.A;B;C
17.A;B;C
18.Promise.all;await;同时
19.Promise.resolve;Promise.reject
20.try;catch;finally
