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

JS异步编程入门专题测试

20 题 30 分钟 难度:

考察知识点

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

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

A

B

2
单选题

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

A

回调函数必须是匿名函数

B

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

C

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

D

回调函数必须有返回值

3
单选题

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

A

计算两个数的和

B

处理点击事件响应

C

定义一个常量

D

创建一个正则表达式

4
单选题

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

A

2种

B

3种

C

4种

D

5种

5
单选题

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

A

Promise状态可以多次改变

B

Promise只能从Pending变为Fulfilled

C

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

D

Promise总是从Rejected变为Fulfilled

6
单选题

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

A

同步任务

B

宏任务

C

微任务

D

延迟任务

7
单选题

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

A

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

B

所有.then共用同一个Promise

C

.then方法修改原Promise的状态

D

链式调用必须使用await

8
多选题

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

A

所有Promise都成功才返回成功

B

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

C

返回结果按传入顺序排列

D

空数组传入直接返回成功

9
多选题

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

A

使用.catch()方法

B

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

C

使用try-catch包裹Promise构造

D

在.then链末尾添加.catch

10
单选题

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

A

async function myFunc() {}

B

function async myFunc() {}

C

myFunc async function() {}

D

function myFunc() async {}

11
单选题
A

创建一个新的Promise

B

等待Promise完成并获取其结果

C

将同步函数转为异步函数

D

取消Promise的执行

12
单选题

async函数的返回值特点:

A

返回普通值,不是Promise

B

总是返回一个Promise对象

C

只有错误时返回Promise

D

必须显式返回Promise

13
单选题

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

A

使用.catch()方法

B

使用try-catch语句

C

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

D

错误会自动消失

14
多选题

async/await与Promise的关系是:

A

async/await是Promise的语法糖

B

async函数返回Promise

C

await等待Promise完成

D

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

15
多选题

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

A

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

B

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

C

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

D

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

16
单选题

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

A

创建新的线程执行任务

B

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

C

替代所有回调函数

D

同步执行所有代码

17
单选题

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

A

宏任务优先于微任务

B

微任务优先于宏任务

C

按添加顺序依次执行

D

随机执行

18
单选题

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

A

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

B

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

C

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

D

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

19
判断题

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

A

B

20
判断题

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

A

B

← 上一个试卷 JS对象与数组专题测试
下一个试卷 → JS异步进阶与并发控制测试

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

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

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

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