ES6 模块编程(新思路方便复习笔记)

news2024/11/20 22:42:17

文章目录

  • ES6 模块编程(新思路方便复习笔记)
    • 介绍
    • 需求说明
    • 思路分析/图解
    • 代码实现
      • 创建common.js
      • 创建use_common.js
    • 其它导出形式--直接导出
      • 创建common2.js
      • 创建use_common2.js
    • 其它导出形式--默认导出
      • 创建common3.js
      • 创建use_common3.js--导入默认导出模块/数据
      • 注意事项和使用细节
        • 导出方式1, 前面讲的就是
        • 导出方式2
        • 导出方式3, 一次导出多个, 导入时,导入变量名可自己指定
        • 导出方式4
        • 导出方式5
      • 总结

ES6 模块编程(新思路方便复习笔记)

介绍

1、ES6 使用 (1)export {名称/对象/函数/变量/常量} (2) export 定义 = (3) export default {}导出模块

2、使用 import {} from “xx.js” / import 名称 form “xx.js” 导入模块

2 应用实例-批量导出形式

需求说明

  1. 编写 common.js , 该文件有函数,变量, 常量, 对象

  2. 要求在 use_common.js , 可以使用到 common.js 中定义的 函数/变量/常量/对象

  3. 请使用 ES6 模块化编程的方式完成

思路分析/图解

在这里插入图片描述

代码实现

创建common.js

  1. export 就是导出模块/数据
  2. 可以全部导出,也可以部分导出
//定义对象,变量,常量, 函数
const sum = function (a, b) {
    return parseInt(a) + parseInt(b);
}

const sub = function (a, b) {
    return parseInt(a) - parseInt(b);
}

let name = "xxxx";

const PI = 3.14;

const monster = {
    name: "牛魔王",
    age: 500,
    hi() {
        console.log("hi 你好 牛魔王");
    }
}

//es6的导出模块/数据
/**
 * 解读
 * 1. export 就是导出模块/数据
 * 2. 可以全部导出,也可以部分导出
 */
export {
    sum,
    sub,
    name,
    monster
}

创建use_common.js

  1. 我可以{} 来接收导出的数据
  2. 可以全部接收,也可以选择的接收
  3. 细节: 这时要求导入的名称和导出的名称一致
//导入
/**
 * 解读
 * 1. 我可以{} 来接收导出的数据
 * 2. 可以全部接收,也可以选择的接收
 * 3. 细节: 这时要求导入的名称和导出的名称一致
 */
import {sub,sum,name} from "./common";
import {monster} from "./common";

//使用
console.log(sumx(10, 90));
console.log(name);
console.log(monster.hi())
  1. 说明: ES6 的模块化,需要用 Babel 转码 ES5 后再执行, 我们后面在整体项目中使用
    即可, 只要 es6_use.js 可以识别变量名说明是正确的

其它导出形式–直接导出

创建common2.js

说明:如果在定义时,导出的数据, 在导入时,要保持名字一致

//定义对象,变量,常量, 函数

//定义sum函数时,就直接导出
//说明:如果在定义时,导出的数据, 在导入时,要保持名字一致
export const sum = function (a, b) {
    return parseInt(a) + parseInt(b);
}

const sub = function (a, b) {
    return parseInt(a) - parseInt(b);
}

let name = "xxxx";

const PI = 3.14;

const monster = {
    name: "牛魔王",
    age: 500,
    hi() {
        console.log("hi 你好 牛魔王");
    }
}

创建use_common2.js

没有导出的数据, 是不可以导入

//可以导入模块/数据
import {sum}  from "./common2";
//没有导出的数据, 是不可以导入
//import {sub}  from "./common2";

console.log(sum(10,30));

其它导出形式–默认导出

创建common3.js

如果是默认导出, 导入的时候,使用的语法
可以这里理解, 类似把 {} 当做一个对象导出

//定义对象,变量,常量, 函数

//演示默认导出
//如果是默认导出, 导入的时候,使用的语法
//可以这里理解, 类似把 {} 当做一个对象导出

export default {
    sum(a,b) {
        return parseInt(a) + parseInt(b);
    },
    sub(a,b) {
        return parseInt(a) - parseInt(b);
    }
}

创建use_common3.js–导入默认导出模块/数据

好处是 m 名称是可以自己指定的.
以为m 名字, 程序员可以自己指定,因此我们就可以解决名称冲突问题

//导入默认导出模块/数据
//好处是 m 名称是可以自己指定的.
//以为m 名字, 程序员可以自己指定,因此我们就可以解决名称冲突问题
import m from "./common3";

//使用 m.xx
console.log(m.sub(80,90));

说明: ES6 的模块化,需要用Babel 转码ES5 后再执行, 我们后面在整体项目中使用即可, 只要es6_use2.js 可以正确识别说明是正确的

注意事项和使用细节

  1. ES6 的模块化无法在Node.js 中执行,需要用Babel 转码ES5 后再执行
  2. export 不仅可以导出对象,一切JS 变量都可以导出。比如:基本类型变量、函数、数组、对象
  3. 没有导出的不能使用
  4. es6 有导出方式较多, 不同的导出方式对导入方式也有一定影响

导出方式1, 前面讲的就是

在这里插入图片描述

导出方式2

在这里插入图片描述

导出方式3, 一次导出多个, 导入时,导入变量名可自己指定

//导出模块,简洁写法
export default {
	sayHello() {
		console.log("abc")
	},
	sayYes() {
		console.log("yes")
	}
}
//对应导入方式, 导入名字自己指定,通过.方式来选择调用函数/变量
import m from "./es6_common"
console.log(m.sayHello())
console.log(m.sayYes())

导出方式4

在这里插入图片描述

导出方式5

在这里插入图片描述

总结

虽然ES6 模块编程导出导入方式较多,但是本质都是一样的,重点掌握第1、2、3 种.其它方式能够看懂即可.

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

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

相关文章

毓恬冠佳冲刺上市:打破汽车天窗外商垄断,长安汽车为其主要客户

撰稿|行星 来源|贝多财经 7月23日,上海毓恬冠佳科技股份有限公司(以下简称“毓恬冠佳”)在深圳证券交易所的审核状态变更为“已问询”。据贝多财经了解,毓恬冠佳于2023年6月27日递交招股书,准备在创业板上市。 本次冲…

十一、数据结构——树(Tree)的基本概念

数据结构之树(Tree) 目录 树的基本概念树的分类树的基本操作树的应用结语 树的基本概念 树是一种重要的数据结构,它在计算机科学中被广泛应用。树的特点是以分层的方式存储数据,具有层次结构,类似于现实生活中的树状结构。在树中&#xff…

环境变量初始化与对应文件的生效顺序

正常登陆情况下(不是系统启动过程而是输入用户名和密码登录时,或者注销用户重新登录),环境变量配置文件的调用过程: // 正常登陆时环境变量配置文件的调用过程 /etc/profile|--/etc/profile.d/*|--/etc/profile.d/lan…

设计模式---综合应用-自定义Spring框架-自定义Spring IOC-定义解析器、IOC容器相关类

3 定义解析器相关类 3.1 BeanDefinitionReader接口 BeanDefinitionReader是用来解析配置文件并在注册表中注册bean的信息。定义了两个规范: 获取注册表的功能,让外界可以通过该对象获取注册表对象。 加载配置文件,并注册bean数据。 /*** …

提示工程101|与 AI 交谈的技巧和艺术

随着 ChatGPT 的问世,人工智能(AI)新时代也正式开启。ChatGPT 是一种语言模型。它与用户进行对话交互,以便用户输入问题或提示,模型响应,然后对话可以继续来回进行,类似于在消息传递应用程序上向…

docker容器日志大小限制

docker的日志随着时间推移越来越大,我们可以做出一些限制。 docker的日志驱动设置有两种方式,一种是全局配置,一种是特定容器的限制。 这里我选择特定容器限制更加的符合生产环境。全局配置下,需要重启docker。 参考官方文档&am…

在Chrome(谷歌浏览器)中安装Vue.js devtools开发者工具及解决Vue.js not detected报错

文章目录 一、Vue.js devtools开发者工具安装1.打开谷歌浏览器——点击扩展程序——选择管理扩展程序2.先下载添加一个谷歌助手到扩展程序中(根据提示进行永久激活)3.点击谷歌浏览器的应用商店4.输入Vue.js devtools——搜索——选择下载 二、解决Vue.js…

10.python设计模式【代理模式】

内容:为其他对象提供一种代理一控制对这个对象的访问 应用场景: 远程代理: 为远程的对象提供代理虚代理:根据需要创建很大的对象保护代理:控制对原始对象的访问,用于对象有不同访问权限时 UML图 举个例…

vue中Cascader 级联选择器实现-修改实现

vue 的cascader研究了好长时间&#xff0c;看了官网给的示例&#xff0c;上网查找了好多信息&#xff0c;才解决修改时回显的问题&#xff0c;现将方法总结如下&#xff1a; vue代码&#xff1a; <el-form-item label"芯片" prop"firmware"> <…

redis中使用bloomfilter的白名单功能解决缓存穿透问题

一 缓存预热 1.1 缓存预热 将需要的数据提前缓存到缓存redis中&#xff0c;可以在服务启动时候&#xff0c;或者在使用前一天完成数据的同步等操作。保证后续能够正常使用。 1.2 缓存穿透 在redis中&#xff0c;查询redis缓存数据没有内容&#xff0c;接着查询mysql数据库&…

63、故障处理之快速恢复数据

数据丢失快速恢复的重要性 目的&#xff1a;尽快修复数据&#xff0c;恢复业务 快速恢复相关技术对比 常用备份恢复技术 数据快速恢复原理 MVCC 是TiDB数据库原生的一项功能&#xff0c;默认使用无需配置&#xff0c;它使用多个历史快照的方式来维护数据在某个时间点对并…

Python案例|使用Scikit-learn进行房屋租金回归分析

回归分析是一种预测性的建模技术&#xff0c;研究的是因变量&#xff08;目标&#xff09;和自变量&#xff08;预测器&#xff09;之间的关系。回归分析是建模和分析数据的重要工具。比如预测股票价格走势、预测居民收入、预测微博互动量等等。常用的有线性回归、逻辑回归、岭…

软路由r2s简单刷固件openwrt教程

r2s软件介绍 NanoPi R2S 是 FriendlyELEC&#xff08;友善电子&#xff09;推出的一款单板计算机&#xff0c;它是 NanoPi 系列的一部分。NanoPi R2S 是一款小型高性能的嵌入式系统&#xff0c;适用于网络路由、家庭网关、嵌入式应用和网络安全等场景。 r2s软件特点 特性描述…

前端学习——Vue (Day4)

组件的三大组成部分 组件的样式冲突 scoped <template><div class"base-one">BaseOne</div> </template><script> export default {} </script><style scoped> /* 1.style中的样式 默认是作用到全局的2.加上scoped可以让样…

MySQL - 安装、连接、简单介绍

1、安装 MySQL8.0 安装MySQL 8.0的步骤&#xff0c;以 Windows 为例&#xff1a; 1.1 下载MySQL Installer&#xff1a; 需要从MySQL官方网站下载MySQL Installer。在下载页面中&#xff0c;选择适用于Windows的MySQL Installer并下载。 1.2 运行MySQL Installer&#xff1…

银河麒麟安装nginx及配置(附常见问题解析)

下载并安装nginx 去官网下载所需安装包nginx: download 解压 tar -zxvf nginx-xxx.tar.gz 进入nginx目录下&#xff0c;输入命令 ./configure 此处可能报错 原因为未下载gcc编译器 输入以下命令解决 sudo apt-get install -y build-essential git-core bison openssl libr…

《价值流动》从项目到产品: 到底是什么应该流经软件价值流?| IDCF

译者&#xff1a;无敌哥 原文地址: https://www.tasktop.com/blog/what-flows-through-a-software-value-stream/ 本文翻译仅供学习交流之用。 原文作者 Mik Kersten 出版了《Project to Product》 本系列共四篇文章&#xff0c;分别是 01 从项目到产品&#xff1a;软件需要…

web服务器(Tomcat)

一、web服务器 1. 常见web服务器 Tomcat&#xff1a;由Apache组织提供的一种Web服务器&#xff0c;提供对jsp和Servlet的支持。它是一种轻量级的javaWeb容器&#xff08;服务器&#xff09;&#xff0c;也是当前应用最广的JavaWeb服务器&#xff08;免费&#xff09;。 Jbos…

看了2023年的一线互联网公司时薪排行榜!值得思考

前言 根据最近针对国内的一线互联网企业做的调研&#xff0c;汇总了他们的平均时薪水平&#xff0c;最终出了一个排行榜&#xff01; 首先我们来看下&#xff0c;排行榜分哪几个Level&#xff0c;分别为初级、中级、高级、资深、专家/架构这五个&#xff0c;主要根据工程师的…