ECMAScript Modules规范的示例详解

news2025/2/23 0:23:57

在这里插入图片描述

ECMAScript Modules(ESM)是JavaScript中用于模块化开发的规范,它允许开发者将代码分割成多个独立的文件,以提高代码的可维护性和可重用性。下面是一个ECMAScript Modules规范的示例详解:

  1. 创建模块
    1.1 导出变量
    在一个模块中,可以使用 export 关键字将变量、函数或类导出,使其在其他模块中可用。

javascript

// module1.js
export const message = "Hello, ESM!";

1.2 导出函数
javascript

// module2.js
export function greet(name) {
  return `Hello, ${name}!`;
}

1.3 导出类
javascript

// module3.js
export class Calculator {
  add(a, b) {
    return a + b;
  }
}
  1. 导入模块
    在另一个模块中,可以使用 import 关键字引入其他模块中导出的变量、函数或类。

2.1 导入变量
javascript

// main.js
import { message } from './module1.js';

console.log(message); // 输出:Hello, ESM!

2.2 导入函数
javascript

// main.js
import { greet } from './module2.js';

const greeting = greet('John');
console.log(greeting); // 输出:Hello, John!

2.3 导入类
javascript

// main.js
import { Calculator } from './module3.js';

const calculator = new Calculator();
console.log(calculator.add(2, 3)); // 输出:5
  1. 默认导出
    除了具名导出,模块还可以有一个默认导出。一个模块只能有一个默认导出。

3.1 默认导出变量
javascript

// module4.js
const defaultMessage = "Hello, Default ESM!";
export default defaultMessage;

3.2 默认导出函数
javascript

// module5.js
export default function sayHello(name) {
  return `Hello, ${name}!`;
}

3.3 默认导出类
javascript

// module6.js
export default class Greeter {
  greet(name) {
    return `Hello, ${name}!`;
  }
}
  1. 导入默认导出
    javascript
// main.js
import defaultMessage from './module4.js';
import sayHello from './module5.js';
import Greeter from './module6.js';

console.log(defaultMessage); // 输出:Hello, Default ESM!
console.log(sayHello('Alice')); // 输出:Hello, Alice!
const greeter = new Greeter();
console.log(greeter.greet('Bob')); // 输出:Hello, Bob!

以上示例展示了ECMAScript Modules规范的基本用法,包括模块的创建、导出、导入以及默认导出的使用。使用模块化开发有助于代码的组织和维护,同时提高了代码的可读性和可重用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1444038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

低代码开发的数字化革新:实业界的成功秘诀与实践之路

在信息时代,实业界正迎来一场变革的风暴,传统的管理系统逐渐不再满足越来越复杂的生产流程和不断增长的市场需求,而低代码开发正如一颗璀璨的明星,将为企业带来前所未有的灵活性和创新力,这并非一场技术的简单变迁&…

React - 分页插件默认是英文怎么办

英文组件的通用解决方案 这里以分页插件为例: 大家可以看到,最后的这个页面跳转提示文字为Go to,不是中文,而官网里面的案例则是: 解决方案: import { ConfigProvider } from antd; import zhCN from an…

Java图形化界面编程——弹球游戏 笔记

Java也可用于开发一些动画。所谓动画,就是间隔一定的时间(通常小于0 . 1秒 )重新绘制新的图像,两次绘制的图像之间差异较小,肉眼看起来就成了所谓的动画 。 ​ 为了实现间隔一定的时间就重新调用组件的 repaint()方法,可以借助于…

Centos7之忘记Root用户密码的处理方式

Centos7之忘记Root用户密码的处理方式 文章目录 Centos7之忘记Root用户密码的处理方式1.场景描述2. 重置密码1. 重启系统进入编辑界面2. 按方向键下键↓,找到设置语言的地方3. 进入bash界面后,可以输入passwd命令重新设置root密码 1.场景描述 长时间未使…

vue中没有hooks

文章目录 一、前言二、啥是 hooks?三、React hooks 是什么?四、vue composition API 与 react hooks 的对比五、总结六、最后 一、前言 经常在网上看到有很多同学说:“在 Vue 中创建 hooks?提升 什么什么什么” 我每次看到这样的…

电商小程序07显示用户个人信息

目录 1 全局变量2 控制登录按钮显示3 设置布局4 搭建我的页面5 修改个人信息总结 在登录章节我们已经实现了用户名和密码登录首页的功能,在登录之后,可以切换到我的页面,显示用户的头像和名称,可以修改个人信息。本篇我们介绍一下…

机器学习系列——(十八)K-means聚类

引言 在众多机器学习技术中,K-means聚类以其简洁高效著称,成为了数据分析师和算法工程师手中的利器。无论是在市场细分、社交网络分析,还是图像处理等领域,K-means都扮演着至关重要的角色。本文旨在深入解析K-means聚类的原理、实…

【计算机网络】Web HTTP

Web和HTTP HTTP 超文本传输协议 HyperText Transfer Protocol HTTP使用TCP作为支撑传输协议 由一个客户程序和一个服务器程序实现一些常见名词。。。无状态协议 stateless protocol 不保存关于客户的任何信息非持续/持续链接 non-persistent con…

PKI - 借助Nginx 实现Https_使用CA签发证书

文章目录 Pre概述操作步骤1. 生成 CA 密钥对2. 生成自签名的 CA 证书3. 生成服务器密钥对和证书签名请求 (CSR)4. 使用 CA 签署服务器证书 Nginx Https 自签证书1. 生成自签名证书和私钥2. 配置 Nginx 使用 CA签发的 HTTPS 证书3. 重启 Nginx 服务4. 直接访问5. 不验证证书直接…

Linux文本三剑客(2)

文章目录 一、Linux文本三剑客之awk使用方法awk 的原理实例一:只查看test.txt文件(100行)内第20到第30行的内容(企业面试)实例二:已知test.txt文件内容为 BEGIN 和 END 模块实例一:统计/etc/pas…

【C++】类的6个默认成员函数

目录 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 5. 运算符重载 5.1运算符重载 5.2赋值运算符重载 5.3前置和后置重载 5.4日期类的实现 6. const成员函数 7. 取地址及const取地址操作符重载 1. 类的6个默认成员函数 对于一个空类,编…

echarts 曲线图自定义提示框

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>曲线图</title><!-- 引入 ECharts 库 -->…

[word] word参考文献怎么对齐 #学习方法#微信#笔记

word参考文献怎么对齐 word参考文献怎么对齐&#xff1f; 未对齐的参考文献如下 全部选中参考文献内容 选中段落快捷窗口显示/隐藏编辑标记快捷方式和标号快捷方式中左对齐 选中之后参考文献又自动加了标号 把之前的角标和文字之间全部删除 完成图

黄金交易策略(Nerve Nnife.mql4):1秒救地球的第六单

一轮趋势做单&#xff0c;正常情况是5单便可以完成一轮盈利。但当开仓后快速追加5单也无法止盈的话&#xff0c;我们得找准极其苛刻的条件开出第6单&#xff0c;并指望完成利润覆盖。代码如下&#xff1a; if(count > 5 && count < 10 && isDown(small_…

JDK新特性

JDK新特性 函数式接口和Lambda 表达式Stream流操作新日期API操作其他新特性 Lambda 是一个匿名函数&#xff0c;我们可以把 Lambda表达式理解为是一段可以传递的代码&#xff08;将代码 像数据一样进行传递&#xff09;。可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码…

STL - map 和 set

1、关联式容器 vector、list、deque、 forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面 存储的是元素本身 关联式容器也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其里面存储的是<…

单片机与外设的交互

单片机与外设的交互是嵌入式系统中非常重要的一个基础知识点。单片机是一个集成在同一芯片上的中央处理器、存储器和输入/输出接口,它可以根据用户编写的程序与各种外部设备即外设进行交互。单片机与外设之间的交互主要通过单片机上的输入/输出口(I/O口)来实现。 I/O口的工作原…

HSM加密机原理:密钥管理和加密操作从软件层面转移到物理设备中 DUKPT 安全行业基础8

HSM加密机原理 硬件安全模块&#xff08;HSM&#xff09;是一种物理设备&#xff0c;设计用于安全地管理、处理和存储加密密钥和数字证书。HSM广泛应用于需要高安全性的场景&#xff0c;如金融服务、数据保护、企业安全以及政府和军事领域。HSM提供了一种比软件存储密钥更安全…

rsyslog远程记录系统日志

rsyslog是一个快速处理手机系统日志的开源程序&#xff0c;提供了高性能&#xff0c;安全功能和模块化设计&#xff0c;rsyslog是syslog的升级版&#xff0c;他讲多重来源输入输出转换结果到目的地&#xff0c;rsyslog被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。…

OpenCV每日函数 结构分析和形状描述符(9) ApproxPolyDP函数 拟合曲线

一、Douglas -Peucker 算法 也称为Ramer-Douglas-Peucker 算法或迭代端点拟合算法,是一种通过减少点数来平滑折线(由线性线段组成的线)的算法。简化曲线应保留原始曲线的粗略形状,但仅包含定义原始曲线的点的子集。 粗化程度由单个参数 ε 控制,该参数定义原始点和简化曲线…