js 模块化

js 模块化

模块化主要是用来抽离公共代码,隔离作用域,避免变量冲突等。

模块化的整个发展历史如下:

IIFE:使用自执行函数来编写模块化,特点:在一个单独的函数作用域中执行代码,避免代码冲突。

js 复制代码
(function () {
  return {
    data: [],
  };
})();

AMD:使用 require 来编写模块化,特点:依赖必须提前声明好。

js 复制代码
define("./index.js", function (code) {
  //code 就是index.js返回的内容
});

CMD:使用 seaJS 来编写模块化,特点:支持动态引入依赖文件。

js 复制代码
define(function (require, exports, module) {
  var indexCode = require("./index.js");
});

CommonJS:nodeJS 中自带的模块化。

js 复制代码
var fs = require("fs");

UMD:兼容 AMD,CommonJS 模块化语法。

webpack(require.ensure):webpack2.x 版本中的代码分割。

ES Modules:ES6 引入的模块化,支持 import 来引入另一个 js。

相关推荐
小菜鸡桃蛋狗2 分钟前
C++——string(上)
开发语言·c++
chushiyunen11 分钟前
python pygame实现贪食蛇
开发语言·python·pygame
Cosolar18 分钟前
Harness:大模型Agent的“操作系统”,2026年AI工程化的核心革命
人工智能·面试·llm
身如柳絮随风扬24 分钟前
Lambda、方法引用与Stream流完全指南
java·开发语言
前端精髓1 小时前
移除 Effect 依赖
前端·javascript·react.js
jinanwuhuaguo1 小时前
人工智能的进化阶梯:AI、ANI、AGI与ASI的核心区别与深度剖析
开发语言·人工智能·agi·openclaw
姗姗的鱼尾喵1 小时前
Spring/SpringBoot 面试高频(含IOC/AOP/事务)
java·spring boot·面试
清空mega1 小时前
C++中关于数学的一些语法回忆(2)
开发语言·c++·算法
码云之上1 小时前
从一个截图函数到一个 npm 包——pdf-snapshot 的诞生记
前端·node.js·github
Mr_Xuhhh1 小时前
从理论到实践:深入理解算法的时间与空间复杂度
java·开发语言·算法