0

0

什么是JavaScript模块以及如何导出导入?

夢幻星辰

夢幻星辰

发布时间:2025-12-18 22:40:46

|

990人浏览过

|

来源于php中文网

原创

JavaScript模块是独立可复用的代码单元,通过export/import实现封装与通信;ES6模块为现代标准,支持命名导出、默认导出及动态导入;CommonJS仅适用于旧版Node.js环境。

什么是javascript模块以及如何导出导入?

JavaScript模块是一段独立的、可复用的代码单元,它封装变量、函数或类,并能明确声明哪些内容对外可用(导出)、哪些仅内部使用(私有)。模块之间通过导入导出机制通信,避免全局污染,提升代码组织性和维护性。

模块的基本形式:ES6 模块(推荐)

现代 JavaScript 使用 exportimport 语法,需在 HTML 中以 type="module" 加载,或在打包工具(如 Vite、Webpack)中默认启用。

  • 导出方式
    • 命名导出(可多个):export const name = "Alice"; export function greet() { ... }
    • 默认导出(每个模块最多一个):export default function() { ... }export default class User { ... }
  • 导入方式
    • 导入命名导出:import { name, greet } from './utils.js';
    • 导入默认导出:import myFunc from './main.js';(无需大括号)
    • 混合导入:import myDefault, { name, greet } from './module.js';
    • 全部导入(不常用):import * as utils from './utils.js'; → 用 utils.name 访问

CommonJS 模块(Node.js 早期常用)

在 Node.js 环境(尤其是未启用 ES 模块时)使用 require()module.exports。语法不同,不能直接在浏览器原生脚本中运行(除非打包)。

  • 导出module.exports = { name: "Bob", sayHi() { ... } };exports.sayHi = function() { ... };
  • 导入const utils = require('./utils.js');(返回整个 module.exports 对象)
  • 注意:exportsmodule.exports 的引用,直接赋值 exports = {...} 会断开连接,应始终用 module.exports 赋值

模块路径与文件后缀

导入语句中的路径必须明确:

Vuex参考手册 中文CHM版
Vuex参考手册 中文CHM版

Vuex是一个专门为Vue.js应用设计的状态管理模型 + 库。它为应用内的所有组件提供集中式存储服务,其中的规则确保状态只能按预期方式变更。它可以与 Vue 官方开发工具扩展(devtools extension) 集成,提供高级特征,比如 零配置时空旅行般(基于时间轴)调试,以及状态快照 导出/导入。本文给大家带来Vuex参考手册,需要的朋友们可以过来看看!

下载

立即学习Java免费学习笔记(深入)”;

  • 相对路径需带前缀:./utils.js../lib/helper.js.js 后缀在 ES 模块中通常不可省略)
  • 不能省略 ./../,否则会被当作内置模块或包名(如 import fs from 'fs'
  • Node.js 14+ 支持 "type": "module" 字段,让 .js 文件按 ES 模块解析;否则默认为 CommonJS

动态导入:按需加载模块

import() 是一个返回 Promise 的函数,用于条件加载、路由懒加载等场景:

  • if (needMath) { const math = await import('./math.js'); math.add(2, 3); }
  • 支持在任何位置使用(包括函数内、条件分支),不局限于顶层
  • 常用于优化首屏加载,比如只在用户点击按钮后才加载图表模块

基本上就这些。ES6 的 import/export 是当前标准,CommonJS 主要在老 Node 项目或特定工具链中出现。选哪种取决于环境和构建配置,但新项目建议统一用 ES 模块写法。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
es6新特性
es6新特性

es6新特性有:1、块级作用域变量;2、箭头函数;3、模板字符串;4、解构赋值;5、默认参数;6、 扩展运算符;7、 类和继承;8、Promise。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

106

2023.07.17

es6新特性有哪些
es6新特性有哪些

es6的新特性有:1、块级作用域;2、箭头函数;3、解构赋值;4、默认参数;5、扩展运算符;6、模板字符串;7、类和模块;8、迭代器和生成器;9、Promise对象;10、模块化导入和导出等等。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

196

2023.08.04

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

223

2025.12.24

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

789

2023.08.22

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

468

2023.11.27

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

533

2023.09.20

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

511

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

17

2025.12.06

c语言中/相关合集
c语言中/相关合集

本专题整合了c语言中/的用法、含义解释。阅读专题下面的文章了解更多详细内容。

0

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.5万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号