在ES6模块中导入和导出

ops/2025/1/18 15:29:12/

在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/ops/151125.html

相关文章

【0x3D】HCI_Remote_Host_Supported_Features_Notification事件详解

目录 一、事件概述 二、事件格式及参数说明 2.1. HCI_Remote_Host_Supported_Features_Notification事件格式 2.2. BD_ADDR 2.3. Remote_Host_Supported_Features 三、事件作用 3.1. 设备特性沟通与理解 3.2. 功能协商与性能优化 3.3. 设备管理与配置更新 四、应用场…

前端【3】--CSS布局,CSS实现横向布局,盒子模型

盒子分类 1、块级盒子 2、内联级盒子 3、内联块级盒子 4、弹性盒子 5、盒子内部分区 方法一&#xff1a;使用 float 普通盒子实现横向布局 方法二&#xff1a;使用 display: inline-block 内联块级元素实现横向布局 方法三&#xff1a;使用弹性盒子 flexbox&#xff0…

K8S 亲和性与反亲和性 深度好文

今天我们来实验 pod 亲和性。官网描述如下&#xff1a; 假设有如下三个节点的 K8S 集群&#xff1a; k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8-alpine docker pull nginx…

node.js卸载与安装超详细教程

文章目录 一、卸载Step1&#xff1a;通过控制面板删除node版本Step2&#xff1a;删除node的安装目录Step3&#xff1a;查找.npmrc文件是否存在&#xff0c;有就删除。Step4&#xff1a;查看以下文件是否存在&#xff0c;有就删除Step5&#xff1a;打开系统设置&#xff0c;检查…

1.15寒假作业

web&#xff1a;nss靶场ez_ez_php 打开环境&#xff0c;理解代码 使用个体传参的方法&#xff0c;首先代码会检查file参数的前三个字符是不是php&#xff0c;如果是就输出nice&#xff0c;然后用include函数包含file&#xff0c;绕过不是则输出hacker&#xff0c;如果没有file…

Cadence笔记--原理图导入PCB

1、以PMU6050为例&#xff0c;首先在原理图双击PMU6050器件&#xff0c;在PCB_Footprint目录填写PCB封装名称并且保存&#xff0c;如下图所示&#xff1a; 2、确保原理图命名的名称不一样&#xff0c;否则会出错&#xff0c;这里PMU6050更改了NC等名称&#xff0c;如下图所示&a…

挖掘机检测数据集,准确识别率91.0%,4327张原始图片,支持YOLO,COCO JSON,PASICAL VOC XML等多种格式标注

挖掘机检测数据集&#xff0c;准确识别率91.0%&#xff0c;4327张图片&#xff0c;支持YOLO&#xff0c;COCO JSON&#xff0c;PASICAL VOC XML等多种格式标注 数据集详情 数据集分割 训练组70&#xff05; 3022图片 有效集20&#xff05; 870图片 测试集10&…

python学习笔记(PPT+代码)

访问官网&#xff1a;Welcome to Python.org 参考&#xff1a; Python安装与环境配置全程详细教学&#xff08;包含Windows版和Mac版&#xff09;_windows python环境配置-CSDN博客 最后在控制台输入python验证版本即可&#xff0c;不知道系统的可以再控制台输入systeminfo来查…