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

JS异步编程入门专题测试

20 题 30 分钟 难度:★

考察知识点

  • 回调函数:理解回调函数的概念、使用场景及回调地狱问题
  • Promise基础:掌握Promise的状态、创建、链式调用及常用方法
  • async/await:理解async函数和await表达式的用法及错误处理
  • 事件循环:了解JavaScript事件循环机制的基本原理
  • 微任务与宏任务:区分微任务和宏任务,理解执行优先级
💡 参考答案在文末
判断题
1

回调函数是指将一个函数作为参数传递给另一个函数,并在特定时机被调用的函数。

A

B

2

事件循环只有在调用栈为空(没有正在执行的同步代码)时,才会从任务队列中取出任务执行。

A

B

3

JavaScript的事件循环在单线程中运行,通过任务队列实现异步操作的非阻塞执行。

A

B

单选题
4

await关键字的作用是:

A

创建一个新的Promise

B

等待Promise完成并获取其结果

C

将同步函数转为异步函数

D

取消Promise的执行

5

事件循环中,微任务和宏任务的执行顺序是:

A

宏任务优先于微任务

B

微任务优先于宏任务

C

按添加顺序依次执行

D

随机执行

6

Promise的.then()方法中的回调函数在事件循环中被归类为:

A

同步任务

B

宏任务

C

微任务

D

延迟任务

7

Promise链式调用的核心原理是:

A

每个Promise返回一个新的Promise对象

B

所有.then共用同一个Promise

C

.then方法修改原Promise的状态

D

链式调用必须使用await

8

以下关于回调函数的说法,正确的是:

A

回调函数必须是匿名函数

B

回调函数只能用于异步操作

C

回调函数是作为参数传递给其他函数的函数

D

回调函数必须有返回值

9

以下哪个场景最适合使用回调函数?

A

计算两个数的和

B

处理点击事件响应

C

定义一个常量

D

创建一个正则表达式

10

async关键字用于声明异步函数,以下正确的async函数声明是:

A

async function myFunc() {}

B

function async myFunc() {}

C

myFunc async function() {}

D

function myFunc() async {}

11

Promise是JavaScript中用于处理异步操作的对象,它有几种可能的状态?

A

2种

B

3种

C

4种

D

5种

12

async函数的返回值特点:

A

返回普通值,不是Promise

B

总是返回一个Promise对象

C

只有错误时返回Promise

D

必须显式返回Promise

13

async函数中await的Promise失败时,应该如何处理错误?

A

使用.catch()方法

B

使用try-catch语句

C

使用.then()的第二个参数

D

错误会自动消失

14

事件循环执行流程的正确顺序是:

A

执行宏任务 → 执行微任务 → 执行同步代码

B

执行同步代码 → 执行宏任务 → 执行微任务

C

执行同步代码 → 清空微任务 → 执行下一个宏任务

D

执行微任务 → 执行同步代码 → 执行宏任务

15

以下关于Promise状态的描述,正确的是:

A

Promise状态可以多次改变

B

Promise只能从Pending变为Fulfilled

C

Promise状态一旦确定就不可再改变

D

Promise总是从Rejected变为Fulfilled

16

JavaScript事件循环(Event Loop)的主要作用是:

A

创建新的线程执行任务

B

监控和调度异步任务的执行

C

替代所有回调函数

D

同步执行所有代码

多选题
17

async函数中遇到await时,会发生:

A

async函数暂停执行,等待Promise完成

B

函数外的同步代码继续执行

C

await后面的代码作为微任务排队

D

await后面的代码作为宏任务排队

18

async/await与Promise的关系是:

A

async/await是Promise的语法糖

B

async函数返回Promise

C

await等待Promise完成

D

async/await可以替代所有Promise用法

19

Promise中处理错误的方式包括:

A

使用.catch()方法

B

使用.then()的第二个参数

C

使用try-catch包裹Promise构造

D

在.then链末尾添加.catch

20

以下关于Promise.all()的正确描述有:

A

所有Promise都成功才返回成功

B

任一Promise失败则立即返回失败

C

返回结果按传入顺序排列

D

空数组传入直接返回成功

参考答案
1.正确 2.正确 3.正确 4.B 5.B 6.C 7.A 8.C 9.B 10.A 11.B 12.B 13.B 14.C 15.C 16.B 17.A;B;C 18.A;B;C 19.A;B;D 20.A;B;C;D
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 JS对象与数组专题测试
下一套试卷 → JS异步进阶与并发控制测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码