在ES6模块中导入和导出

news/2025/1/15 19:16:59/

在ES6模块中导入和导出

  • 以最简单的例子举例
//shoppingCart.js
//导出模块
console.log('导出模块');//script.js
//导出模块
import './shoppingCart.js';
console.log('导入模块');

在这里插入图片描述

  • 所以要导入其他模块必须指定类型
 <script type="Modules" defer src="script.js"></script>

在这里插入图片描述

注:这个输出说明了,导入模块会在所有执行代码之前;

  • 现在我们在shoppingCart中添加一些代码
const shoppingCart = 10;
const cart = [];const addToCart = function (product, quantity) {cart.push({ product, quantity });console.log(`${quantity} ${product} 被添加到购物车中`);
};
  • 注意上面的函数只能在本域使用,如果想要其他模块使用的话,需要加上export参数
export const addToCart = function (product, quantity) {cart.push({ product, quantity });console.log(`${quantity} ${product} 被添加到购物车中`);
};
  • 之后,我们就可以在script.js中去引入并调用这个函数
import { addToCart } from './shoppingCart.js';
console.log('导入模块');addToCart('面包', 5);

在这里插入图片描述

  • 我们也可以将我们所需要的变量进行导出
const totalPrice = 237;
const totalQuantity = 23;export { totalPrice, totalQuantity };
import { addToCart, totalPrice, totalQuantity } from './shoppingCart.js';
console.log('导入模块');addToCart('面包', 5);console.log(totalPrice, totalQuantity);

在这里插入图片描述

  • 我们可以在导入或者导出的时候更改变量名字
//导出模块
console.log('导出模块');const shoppingCart = 10;
const cart = [];export const addToCart = function (product, quantity) {cart.push({ product, quantity });console.log(`${quantity}元的 ${product} 被添加到购物车中`);
};const totalPrice = 237;
const totalQuantity = 23;export { totalPrice, totalQuantity as qt };
import { addToCart, totalPrice as Price, qt } from './shoppingCart.js';
console.log('导入模块');addToCart('面包', 5);console.log(Price, qt);

在这里插入图片描述

  • 也可以导入模块中所有命名导出的内容
import * as ShoppingCart from './shoppingCart.js';
ShoppingCart.addToCart('面包', 5);
console.log(ShoppingCart.totalPrice);

在这里插入图片描述

  • 可以使用默认导出
export default function (product, quantity) {cart.push({ product, quantity });console.log(`${quantity} ${product}添加至购物车中`);
}
import add from './shoppingCart.js';
add('披萨', 2);

在这里插入图片描述

  • 在看一下下面的代码
//ShoppingCart.js
export const cart = [];
//script.js
import add, { cart } from './shoppingCart.js';
add('披萨', 2);
add('苹果', 2);
add('香蕉', 2);
console.log(cart);

在这里插入图片描述

这个例子也验证了一点,导入导出并不是创建副本的形式,他们是有实时联系的;所以这里查询的并不是原始的空数组;


http://www.ppmy.cn/news/1563401.html

相关文章

2Hive表类型

2Hive表类型 1 Hive 数据类型2 Hive 内部表3 Hive 外部表4 Hive 分区表5 Hive 分桶表6 Hive 视图 1 Hive 数据类型 Hive的基本数据类型有&#xff1a;TINYINT&#xff0c;SAMLLINT&#xff0c;INT&#xff0c;BIGINT&#xff0c;BOOLEAN&#xff0c;FLOAT&#xff0c;DOUBLE&a…

【计算机网络】深入浅出计算机网络

第一章 计算机网络在信息时代的作用 计算机网络已由一种通信基础设施发展成一种重要的信息服务基础设施 CNNIC 中国互联网网络信息中心 因特网概述 网络、互联网和因特网 网络&#xff08;Network&#xff09;由若干结点&#xff08;Node&#xff09;和连接这些结点的链路…

(Arxiv-2023)LORA-FA:针对大型语言模型微调的内存高效低秩自适应

LORA-FA&#xff1a;针对大型语言模型微调的内存高效低秩自适应 paper是香港浸会大学发表在Arxiv 2023的工作 paper title&#xff1a;LORA-FA: MEMORY-EFFICIENT LOW-RANK ADAPTATION FOR LARGE LANGUAGE MODELS FINE-TUNING ABSTRACT 低秩自适应 (LoRA) 方法可以大大减少微调…

计算机网络 | 什么是公网、私网、NAT?

关注&#xff1a;CodingTechWork 引言 计算机网络是现代信息社会的基石&#xff0c;而网络通信的顺畅性和安全性依赖于有效的IP地址管理和网络转换机制。在网络中&#xff0c;IP地址起到了标识设备和进行数据传输的核心作用。本文将详细讨论公网IP、私网IP以及NAT转换等网络技…

Excel中双引号问题

背景&#xff1a; 从Excel中读取数据时&#xff0c;发现有的单元格读出来是一个双引号&#xff0c;有的是一个双引号 "{""accountName"": ""全字段"",""accountState"": ""NORMAL"",&q…

C++实现设计模式---单例模式 (Singleton)

单例模式 (Singleton) 概念 单例模式 确保一个类在整个程序生命周期中只有一个实例&#xff0c;并提供一个全局访问点。 它是一种创建型设计模式&#xff0c;广泛用于需要共享资源的场景。 使用场景 配置管理器&#xff1a;程序中需要一个全局的配置对象。日志系统&#xff…

无人机+无人车:车机协同技术探索详解

无人机与无人车之间的协同技术是一种重要的研究方向&#xff0c;它结合了无人机的高空视野和无人车的地面移动能力&#xff0c;旨在实现更高效、灵活的作业。以下是对无人机与无人车车机协同技术的详细探索&#xff1a; 一、技术基础 1. 通信机制&#xff1a; 无人机与无人车…

【25考研】西南交通大学计算机复试重点及经验分享!

一、复试内容 上机考试&#xff1a;考试题型为编程上机考试&#xff0c;使用 C 语言&#xff0c;考试时长包括 15 分钟模拟考试和 120 分钟正式考试&#xff0c;考试内容涵盖顺序结构、选择结构、循环结构、数组、指针、字符串处理、函数、递归、结构体、动态存储、链表等知识点…