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

NodeJS模块系统专题测试

23 题 45 分钟 难度:

考察知识点

  • 模块系统概述:模块系统作用、模块类型分类、模块加载优先级
  • 自定义模块创建:module.exports与exports用法、导出单个值与对象
  • CommonJS规范:同步加载、值拷贝特性、模块执行时机、内置变量
  • require与module.exports:require返回值、路径解析、导出方式区别
  • 内置模块:fs、path、http等核心模块功能与用法
  • npm包管理:npm命令、package.json、版本号规则、package-lock.json
  • 模块加载机制与缓存:模块缓存机制、查找路径、循环依赖处理、包装函数
  • ES Modules:import/export语法、静态分析、值引用特性、与CommonJS对比
1
单选题

Node.js模块系统的主要作用是什么?

A

提高代码执行速度

B

组织代码、实现作用域隔离和代码复用

C

增加内存使用效率

D

简化异步编程

2
判断题

Node.js中,模块可以分为核心模块、文件模块和第三方模块三种类型。

A

B

3
单选题

在Node.js中,当使用require('fs')require('./fs')时,分别加载的是什么模块?

A

两者都加载核心模块fs

B

前者加载核心模块fs,后者加载当前目录下的fs.js文件

C

前者加载当前目录下的fs.js,后者加载核心模块fs

D

两者都会报错

4
单选题

创建一个自定义模块,导出一个名为greet的函数,以下哪种写法是正确的?

A

export function greet() {}

B

module.exports = { greet: function() {} }

C

exports.greet = function() {}

D

B和C都正确

5
单选题

如果要让一个模块只导出一个构造函数Person,应该使用哪种方式?

A

exports = Person

B

exports.Person = Person

C

module.exports = Person

D

module.exports.Person = Person

6
填空题

在Node.js中,创建自定义模块导出一个对象,通常使用______________对象,也可以使用它的简写形式_______来添加属性。

7
单选题

关于CommonJS模块规范,以下说法正确的是?

A

CommonJS模块采用异步加载方式

B

CommonJS模块的输出是值的拷贝,而非引用

C

CommonJS主要适用于浏览器环境

D

CommonJS模块可以使用import语法导入

8
多选题

在CommonJS模块中,以下哪些是模块内部的内置变量?(多选)

A

module

B

exports

C

require

D

import

9
单选题

当执行require('./utils/helper')时,如果utils目录下没有helper.js文件,但存在helper目录且包含index.js,会发生什么?

A

抛出错误"模块未找到"

B

加载 ./utils/helper/index.js 文件

C

返回空对象

D

自动创建 helper.js 文件

10
多选题

关于module.exportsexports的区别,以下说法正确的是?(多选)

A

exports是module.exports的引用

B

可以直接给exports赋值来导出对象

C

给module.exports赋值会断开与exports的引用关系

D

最终导出的是module.exports的值

11
单选题

以下哪个模块用于处理文件路径?

A

fs

B

path

C

url

D

http

12
多选题

以下关于Node.js内置模块的说法,正确的是?(多选)

A

fs模块可以读写文件

B

http模块可以创建HTTP服务器

C

path模块用于处理和转换文件路径

D

所有内置模块都需要npm install安装

13
单选题

执行npm install express命令后,express包会被安装到哪里?

A

全局目录

B

当前项目的node_modules目录

C

当前目录的根目录

D

npm的缓存目录

14
多选题

以下哪些是npm的常用命令?(多选)

A

npm install

B

npm uninstall

C

npm update

D

npm start

15
判断题

在package.json中,依赖版本号^4.18.2表示只安装版本4.18.2,不允许其他版本。

A

B

16
单选题

当同一个模块被多次require时,会发生什么?

A

模块每次都会重新执行并返回新对象

B

模块只执行一次,后续require返回缓存的对象

C

第二次require会报错

D

每次require返回的对象互不影响

17
单选题

当执行require('lodash')且当前目录没有node_modules时,Node.js会如何查找lodash模块?

A

直接报错"模块未找到"

B

只在当前目录查找

C

从当前目录向上逐级查找node_modules目录

D

直接在全局npm目录查找

18
单选题

Node.js模块代码实际上被包装在一个函数中执行,这个包装函数的参数不包括以下哪个?

A

exports

B

require

C

import

D

__filename

19
单选题

ES Modules与CommonJS的主要区别之一是什么?

A

ES Modules只能在服务器端使用

B

ES Modules使用import/export语法,CommonJS使用require/module.exports

C

CommonJS支持异步加载

D

ES Modules导出的是值的拷贝

20
单选题

ES Modules导出的值是什么类型?

A

值的深拷贝

B

值的浅拷贝

C

值的引用(绑定)

D

JSON字符串

21
多选题

在Node.js中使用ES Modules可以通过哪些方式?(多选)

A

使用.mjs文件扩展名

B

在package.json中设置"type": "module"

C

使用.cjs文件扩展名

D

在文件顶部添加"use module"

22
多选题

关于ES Modules和CommonJS混合使用,以下说法正确的是?(多选)

A

ES Modules可以导入CommonJS模块

B

CommonJS可以导入ES Modules

C

ES Modules中可以使用require函数

D

CommonJS中可以使用动态import()导入ES Modules

23
填空题

ES Modules使用____________关键字进行模块导入导出,CommonJS使用_______module.exports。ES Modules导出的是值的______,CommonJS导出的是值的______

← 上一个试卷 NodeJS核心模块进阶专题测试
下一个试卷 → NodeJS环境搭建与运行专题测试

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

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

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

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