ES6模块化学习

1. 回顾:node.js 中如何实现模块化

node.js 遵循了 CommonJS 的模块化规范。其中:
        导入其它模块使用 require() 方法
        模块对外共享成员使用 module.exports 对象

模块化的好处: 大家都遵守同样的模块化规范写代码,降低了沟通的成本,极大方便了各个模块之间的相互调用,利人利己。

2. 前端模块化规范的分类

在 ES6 模块化规范诞生之前,JavaScript 社区已经尝试并提出了 AMD、CMD、CommonJS 等模块化规范。
但是,这些由社区提出的模块化标准,还是存在一定的差异性与局限性、并不是浏览器与服务器通用的模块化标准,例如:
        AMD 和 CMD 适用于浏览器端的 Javascript 模块化
        CommonJS 适用于服务器端的 Javascript 模块化

太多的模块化规范给开发者增加了学习的难度与开发的成本。因此,大一统的 ES6 模块化规范诞生了!

3. 什么是 ES6 模块化规范

ES6 模块化规范是浏览器端与服务器端通用的模块化开发规范。它的出现极大的降低了前端开发者的模块化学习成本,开发者不需再额外学习 AMD、CMD 或 CommonJS 等模块化规范。

ES6 模块化规范中定义:
        每个 js 文件都是一个独立的模块 
        导入其它模块成员使用 import 关键字  
        向外共享模块成员使用 export 关键字

4. 在 node.js 中体验 ES6 模块化

node.js 中默认仅支持 CommonJS 模块化规范,若想基于 node.js 体验与学习 ES6 的模块化语法,可以按照如下两个步骤进行配置:
        ①确保安装了 v14.15.1 或更高版本的 node.js (node -v 查看node版本)
        ②在 package.json 的根节点中添加
"type": "module" 节点npm init -y 初始化包管理配置文件,注意:初始化包管理配置文件的时候,文件名不能是中文

5. ES6 模块化的基本语法

ES6 的模块化主要包含如下 3 种用法:
        ①默认导出与默认导入
        ②按需导出与按需导入
        ③直接导入并执行模块中的代码

5.1 默认导出与默认导入

①默认导出

        默认导出的语法: export default 默认导出的成员

 默认导出的注意事项每个模块中,只允许使用唯一的一次 export default,否则会报错!

②默认导入

        默认导入的语法: import 接收名称 from '模块标识符'

默认导入的注意事项:默认导入时的接收名称可以任意名称,只要是合法的成员名称即可:


③按需导出

        按需导出的语法: export 按需导出的成员

④按需导入

        按需导入的语法: import { s1 } from '模块标识符'


按需导出与按需导入的注意事项:
        每个模块中可以使用多次按需导出 
        按需导入的成员名称必须和按需导出的名称保持一致 
        按需导入时,可以使用 as 关键字进行重命名 
        按需导入可以和默认导入一起使用

⑤直接导入并执行模块中的代码

如果只想单纯地执行某个模块中的代码,并不需要得到模块中向外共享的成员。此时,可以直接导入并执行模块代码,示例代码如下:

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

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

相关文章

Linux 时区文件格式【man 5 tzfile】

时区文件格式标准:https://datatracker.ietf.org/doc/html/rfc8536 1. NAME(名) tzfile - 时区文件。(非文本文件) 2. DESCRIPTION(描述) 本页介绍被 tzset(3) 函数使用的时区文件的结构。这…

006 线程安全

文章目录 临界资源线程安全基本概念*何谓竞态条件**何谓线程安全* 对象的安全局部基本类型变量局部的对象引用对象成员(成员变量) 不可变性 临界资源 临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源。属于临界资源…

如何使用GPT进行科研:详细指令指南

如何使用GPT进行科研:详细指令指南 随着GPT模型的流行,越来越多的科研人员开始利用这项技术来辅助科学研究,特别是在文本处理任务如论文翻译、文本润色和降低抄袭率方面。本文将提供详细的指令,帮助科研人员有效地使用GPT进行科研…

计算机相关专业入门,高考假期预习指南

一:学习资源推荐 跟着b站的“黑马程序员”学c,黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili,把这个编程语言基础打好,然后看“蓝桥杯算法”,到了大一直接就能打蓝桥杯比赛了 看完上面的 …

TRILL简介

介绍TRILL的定义及目的。 定义 TRILL(Transparent Interconnection of Lots of Links)是一种把三层链路状态路由技术应用于二层网络的协议。TRILL通过扩展IS-IS路由协议实现二层路由,可以很好地满足数据中心大二层组网需求,为数据中心业务提供解决方案…

用数组手搓一个小顶堆

堆默认从数组下标为1开始存储。 const int N201000; int heap[N]; int len; 插入操作: 将元素插入到堆的末尾位置向上调整。 void up(int k){while(k>1&&heap[k/2]>heap[k]){swap(heap[k],heap[k/2]);k/2;} } //len为当前存在元素长度 void Inser…

水利水库大坝结构安全自动化监测主要测哪些内容?

在大坝安全自动化监测系统建设中,应根据坝型、坝体结构和地质条件等因素选定监测项目;主要监测对象包括坝体、坝基及有关的各种主要水工建筑物、大坝附近的不稳定岸坡和大坝周边的气象环境。深圳安锐科技建议参考下列表格适当调整。 (一&am…

计算机网络(2

计算机网络续 一. 网络编程 网络编程, 指网络上的主机, 通过不同的进程, 以编程的方式实现网络通信(或网络数据传输). 即便是同一个主机, 只要不同进程, 基于网络来传输数据, 也属于网络编程. 二. 网络编程套接字(socket) socket: 操作系统提供的网络编程的 API 称作 “soc…

(0)2024年基于财务的数据科学项目Python编程基础(Jupyter Notebooks)

目录 前言学习目标:学习内容:大纲 前言 随着数据科学的迅猛发展,其在财务领域的应用也日益广泛。财务数据的分析和预测对于企业的决策过程至关重要。 本专栏旨在通过Jupyter Notebooks这一强大的交互式计算工具,介绍基于财务的数…

【车载开发系列】常见单片机调试接口的区别

【车载开发系列】常见单片机调试接口的区别 【车载开发系列】常见单片机调试接口的区别 【车载开发系列】常见单片机调试接口的区别一. JTAG协议二. SWD接口三. RDI接口四. 仿真器1)J-Link仿真器2)ULink仿真器3)ST-LINK仿真器 五. SWD / JTAG…

Day05-组织架构-角色管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.组织架构-编辑部门-弹出层获取数据2.组织架构-编辑部门-编辑表单校验3.组织架构-编辑部门-确认取消4.组织架构-删除部门5.角色管理-搭建页面结构6.角色管理-获取数…

MySQL中的DDL语句

第一题 输入密码登录mysql,创建数据库zoo,转换到zoo数据库, mysql> create database zoo character set gbk; mysql> use zoo查看创建数据库zoo信息 mysql> show create database zoo;删除数据库zoo mysql> drop database zo…

【后端面试题】【中间件】【NoSQL】MongoDB查询优化2(优化排序、mongos优化)

优化排序 在MongoDB里面,如果能够利用索引来排序的话,直接按照索引顺序加载数据就可以了。如果不能利用索引来排序的话,就必须在加载了数据之后,再次进行排序,也就是进行内存排序。 可想而知,如果内存排序…

【居家养老实训室】:看中医保健在养老中的应用

本文以居家养老实训室为视角,深入探讨了中医保健在养老中的应用。通过对中医保健理念、常用方法以及在居家养老中的具体实践进行分析,阐述了其在改善老年人健康状况、提高生活质量方面的重要作用。同时,也指出了目前应用中存在的问题&#xf…

Apache Kylin模型构建全解析:深入理解大数据的多维分析

引言 Apache Kylin是一个开源的分布式分析引擎,旨在为大数据提供快速的多维分析能力。它通过预计算技术,将数据转化为立方体模型(Cube),从而实现对Hadoop大数据集的秒级查询响应。本文将详细介绍Kylin中模型构建的全过…

Windchill的Debug配置

在windchillshell中运行以下命令 xconfmanager -s "wt.manager.cmd.MethodServer.debug.args- agentlib:jdwptransportdt_socket,servery,suspendn,address0.0.0.0:{19}" -p - t codebase/wt.properties xconfmanager -s "wt.manager.cmd.MethodServer.param.19…

2024暑假集训第三次考试

3004. Sleepy Cow Sorting 思路分析 这道题是一道思维题。 这个就要结合之前学习过的算法,看这个题目的排序方式,我们就理所当然的想到了插入排序,也是这道题的正解。只需要看看前面有几个数是无序的就是需要排的次数。转换一下,也…

【第19章】MyBatis-Plus自定义ID生成器

文章目录 前言一、如何自定义二、Spring Boot 集成1. 方式一:声明为Bean供Spring扫描注入2. 方式二:使用配置类3. 方式三:通过MybatisPlusPropertiesCustomizer自定义 三、Spring 集成1. 方式一:XML配置2. 方式二:注解…

【CUDA】 矩阵乘法 matMatMul

矩阵乘法 matMatMul 矩阵乘法是基本线性代数子程序(BLAS)的重要组成部分,而且线性代数中许多其他操作以此为基础。 图1是两个矩阵的乘法。 基础方法,正方形tile和长方形tile 基础方法 执行矩阵乘法的基础方法是使用单个线程执…

Linux上web服务器搭建(Apache、Nginx)

第五章 web服务器 第一节 DNS:对域名进行解析,查询对应的地址 1.1 web服务器简介 www是world wide web的缩写,也就是全球信息广播的意思 1.2.网址及HTTP简介 web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端…