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

JS模块化与工程化基础专题测试

20 题 45 分钟 难度:

考察知识点

  • 模块打包工具:Webpack核心配置、loader与plugin区别、Tree Shaking原理、Webpack Dev Server配置、Webpack与Rollup对比
  • 包管理工具:npm/yarn锁文件、语义化版本号、npx命令、npm scripts、并行安装特性
  • 工程化基础:Babel编译流程、preset-env作用、ESLint配置优先级、polyfill机制、Babel插件执行顺序
  • 模块化规范:CommonJS与ES Module对比、模块导入导出语法、动态import()、模块互操作
1
单选题

关于Webpack的核心配置,以下说法正确的是?

A

entry配置只能是字符串,不能是对象或数组

B

output.path配置的是打包输出文件的名称

C

loader用于转换非JavaScript文件,plugin用于执行更广泛的任务

D

mode只能设置为development或production两种模式

2
单选题

关于Webpack和Rollup的区别,以下描述正确的是?

A

Webpack更适合打包类库,Rollup更适合打包应用

B

Rollup默认支持代码分割(Code Splitting),Webpack不支持

C

Webpack使用loader处理文件,Rollup使用插件处理文件

D

Rollup打包后的代码可读性通常比Webpack差

3
单选题

关于Webpack的Tree Shaking(摇树优化),以下说法正确的是?

A

Tree Shaking可以自动移除所有未使用的代码

B

Tree Shaking依赖于ES Module的静态结构特性

C

使用CommonJS模块规范也能获得完美的Tree Shaking效果

D

Tree Shaking只需要在配置中设置mode为production即可,无需其他配置

4
多选题

关于Webpack Dev Server的配置和功能,以下说法正确的有?

A

hot设置为true可以启用模块热替换(HMR)

B

proxy配置可以实现API请求的代理转发

C

historyApiFallback配置用于支持SPA应用的路由回退

D

contentBase配置用于指定静态资源服务的目录

5
判断题

Webpack 5版本中,可以通过配置cache.type为filesystem来启用文件系统缓存,从而加速构建过程。

A

B

6
判断题

Webpack开箱即用,可以直接处理JavaScript、CSS、图片等所有类型的文件,无需额外配置loader。

A

B

7
填空题

在Webpack中使用_______________________插件可以可视化分析打包后的文件体积分布,帮助定位优化点。该插件会生成一个交互式的______,显示每个模块的大小和依赖关系。

8
单选题

在package.json中,依赖版本号^2.3.4表示的含义是?

A

必须安装2.3.4这个精确版本

B

可以安装2.3.x系列中的任何版本,但不包括2.4.0

C

可以安装2.x.x系列中的任何版本,但不包括3.0.0

D

可以安装任何大于等于2.3.4的版本

9
判断题

yarn最初发布时的主要优势之一是支持并行安装包,而npm 5之前的版本是串行安装包的,npm 5及以后版本也支持并行安装了。

A

B

10
填空题

在package.json中,可以通过_______字段定义项目脚本命令。运行这些脚本时,可以使用npm run <脚本名>命令。其中,______和test是两个特殊的脚本,可以直接通过npm <脚本名>运行,无需加run关键字。

11
单选题

关于npx命令的作用,以下说法正确的是?

A

npx只能执行已全局安装的npm包

B

npx执行包时,如果本地未安装会自动下载到临时目录执行

C

npx和npm run的作用完全相同

D

npx执行完毕后会保留下载的包到node_modules

12
单选题

关于@babel/preset-env的作用,以下说法正确的是?

A

它可以自动根据目标浏览器环境确定需要的Babel插件

B

它只能转换ES6语法,不能转换更新的语法特性

C

它自动包含所有可能的Babel转换插件

D

它只能用于转换ES Module为CommonJS

13
多选题

关于ESLint的extends和rules配置,以下说法正确的有?

A

extends可以继承已有的配置规则集,如eslint:recommended

B

rules中设置的规则优先级高于extends中继承的规则

C

extends只能是字符串,不能是数组

D

rules中的规则可以设置为off、warn或error三个级别

14
判断题

Babel 7版本采用了作用域包(scoped packages)的命名方式,所有官方包都以@babel/为前缀,如@babel/core、@babel/preset-env等。

A

B

15
判断题

Babel默认只转换语法,不转换新的API(如Promise、Array.prototype.includes等),需要配合core-js等polyfill库来提供这些API的支持。

A

B

16
填空题

在Babel配置中,插件和preset的执行顺序是不同的:______在数组中从前向后执行,而______在数组中从后向前执行。这意味着如果preset数组是['@babel/preset-env', '@babel/preset-react'],则先执行preset-react。

17
单选题

关于CommonJS和ES Module的主要区别,以下说法正确的是?

A

CommonJS是静态加载,ES Module是动态加载

B

CommonJS模块输出的是值的拷贝,ES Module输出的是值的引用

C

CommonJS和ES Module都可以在代码运行时动态加载模块

D

CommonJS模块中的this指向模块本身,ES Module中的this指向undefined

18
单选题

以下哪种ES Module导入方式可以实现对模块的整体导入?

A

import { foo } from './module'

B

import foo from './module'

C

import * as module from './module'

D

import './module'

19
多选题

关于ES Module和CommonJS的互操作,以下说法正确的有?

A

ES Module可以导入CommonJS模块的默认导出

B

CommonJS可以导入ES Module的所有导出

C

ES Module导入CommonJS模块时,CommonJS的exports对象会作为默认导出

D

在Node.js中,使用ES Module需要将文件扩展名改为.mjs或在package.json中设置type为module

20
填空题

在ES Module中,导出模块成员有三种主要语法:命名导出使用______关键字导出特定成员;默认导出使用export _______导出单个值;也可以在声明前直接添加export关键字实现声明时导出。

← 上一个试卷 JS引擎与运行时原理专题测试
下一个试卷 → JS浏览器与DOM高级专题测试

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

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

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

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