Leen27 / Diary

技术日记
0 stars 0 forks source link

[碎片] 模块 (Module) 简介 #11

Open Leen27 opened 1 year ago

Leen27 commented 1 year ago

参考:https://zh.javascript.info/modules-intro

历史模块分类

AMD —— 最古老的模块系统之一,最初由 require.js 库实现。 CommonJS —— 为 Node.js 服务器创建的模块系统。 UMD —— 另外一个模块系统,建议作为通用的模块系统,它与 AMD 和 CommonJS 都兼容。

现在,它们都在慢慢成为历史的一部分,但我们仍然可以在旧脚本中找到它们。

现代 模块

语言级的模块系统在 2015 年的时候出现在了标准(ES6)中,此后逐渐发展,现在已经得到了所有主流浏览器和 Node.js 的支持。因此,我们将从现在开始学习现代 JavaScript 模块(module)。

什么是模块?

一个模块(module)就是一个文件。一个脚本就是一个模块。就这么简单。

模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,从另一个模块调用一个模块的函数:

export 关键字标记了可以从当前模块外部访问的变量和函数。 import 关键字允许从其他模块导入功能。 例如,我们有一个 sayHi.js 文件导出了一个函数:

// 📁 sayHi.js
export function sayHi(user) {
  alert(`Hello, ${user}!`);
}

……然后另一个文件可能导入并使用了这个函数:

// 📁 main.js
import { sayHi } from './sayHi.js';

alert(sayHi); // function...
sayHi('John'); // Hello, John!

由于模块支持特殊的关键字和功能,因此我们必须通过使用 Githubissues.

  • Githubissues is a development platform for aggregating issues.