当前位置: 首页 > news >正文

网站开发知识产权/关键词优化排名软件案例

网站开发知识产权,关键词优化排名软件案例,免费素材库大全,幼儿园网站及办公平台建设红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules) 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、模块化的意义:分而治之 模块化解决代码依赖混…

红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules)

资料取自《JavaScript高级程序设计(第5版)》。
查看总目录:红宝书学习大纲


一、模块化的意义:分而治之

模块化解决代码依赖混乱、命名冲突问题,核心思想:

  • 每个文件为一个独立模块
  • **导出(export)**需要暴露的功能
  • **导入(import)**其他模块的功能

二、CommonJS:服务端的模块化方案

CommonJS设计用于服务器环境(如Node.js),特性:

  • 同步加载 → 适合本地文件系统 1
  • 使用require()导入,module.exports导出 2
示例1:导出对象
// math.js
function add(a, b) { return a + b; }
module.exports = { add }; // 导出模块功能 [^5]// main.js
const math = require('./math.js'); // 导入模块 [^6]
console.log(math.add(3, 5)); // 输出8
示例2:导出类或实例
// User.js
class User { /* ... */ }
module.exports = User; // 导出类 [^5]// app.js
const User = require('./User.js');
const user = new User();

关键特点:导出的是对象或值的拷贝,多次导入会缓存结果 3


三、ES Modules(ESM):原生的浏览器支持

ES Modules是JavaScript官方标准,特性:

  • 浏览器直接支持(需要<script type="module">43
  • 导出用export,导入用import
示例3:基本语法
// math.js
export const multiply = (a, b) => a * b;// main.js
import { multiply } from './math.js';
console.log(multiply(3, 5)); // 输出15
示例4:导出默认值
// config.js
const API_KEY = '12345abc';
export default API_KEY; // 默认导出// app.js
import key from './config.js'; // 默认导入不使用大括号

关键特点:导出的是引用,动态绑定,值更新影响所有导入方 3


四、对比CommonJS与ES Modules

特征CommonJSES Modules
运行环境Node.js(服务器端)1浏览器原生支持+现代Node 4
加载方式同步(立即执行)1异步(按需加载)3
导出内容值的拷贝(静态)2值的引用(动态)3
语法module.exports / requireexport / import

五、现代工具链:模块打包与转换

由于浏览器兼容问题,常用工具:

  1. Webpack/Babel → 将ESM/CommonJS转为兼容代码 5
  2. SystemJS → 动态加载多种格式模块(包括ESM)5


目录:总目录
上篇文章:红宝书第二十讲:详解JavaScript的Proxy与Reflect

脚注


  1. 《JavaScript高级程序设计(第5版)》详解CommonJS语法与Node.js的关系 ↩︎ ↩︎ ↩︎

  2. 《JavaScript高级程序设计(第5版)》演示CommonJS导出类与实例的方式 ↩︎ ↩︎

  3. 《JavaScript高级程序设计(第5版)》描述模块加载器的依赖图与执行顺序 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  4. 《JavaScript高级程序设计(第5版)》的目录指明ES Modules为原生标准 ↩︎ ↩︎

  5. 《JavaScript高级程序设计(第5版)》指出SystemJS支持动态加载ESM等模块格式 ↩︎ ↩︎

http://www.whsansanxincailiao.cn/news/30238500.html

相关文章:

  • 手机网站有什么区别吗/百度平台我的订单
  • 网站创建需要多少钱/怎么做一个网站页面
  • 重庆做营销网站建设/免费入驻的卖货平台有哪些
  • 个人做盈利慈善网站/百度账号怎么注册
  • 邢台规划局网站建设/杭州seo网站排名
  • 东南亚cod建站工具/如何做好线上营销
  • 深圳市做网站公司/微信小程序平台官网
  • 有一套源码做网站还差什么/如何网站关键词优化
  • b站推广网站2024动漫/武汉做seo公司
  • php网站有哪些/seo工具有哪些
  • 做服装到哪个网站拿货品质好/保定网站建设公司哪家好
  • 企业网站优化咨询/南宁网站推广公司
  • jsp网站建设模板/郑州seo哪家好
  • 廊坊论坛网站建设/凡科建站怎么收费
  • 公司网站做么做百度排名/全国疫情又严重了
  • 沈阳做网站企业/国家免费培训机构
  • 网站开发需要代码吗/最近最新的新闻
  • 网站建设教程app/aso优化费用
  • 龙泉网站建设/竞价是什么工作
  • 关于购物网站建设的论文/windows优化大师收费吗
  • 网站开发工程师应聘书范文/百度网页版登录
  • 深圳网站制作有名 乐云践新/万能搜索引擎网站
  • 设计外贸网站建设/搜索引擎排名的三大指标
  • 企业网站报价方案模板/hs网站推广
  • 嘉兴网嘉兴网站建设/百度搜索收录入口
  • 土特产 网站源码/网络推广怎么找客户资源
  • 花都区网站建设/二手交易平台
  • 姓名域名网站/重庆关键词自然排名
  • 接做网站简介/免费b站推广入口
  • 上海网站制作策划/seo优化诊断工具