es6 Module语法
export 命令
1、概念
export用于定义要输出的变量(let、var、const、function、class),定义的变量与值是动态绑定关系。
2、命令格式
1、 export 变量定义
2、 export { 变量名 [ as 另名} ,…}
3、 export default 匿名定义
export default 匿名定义
匿名定义本质上是采用 default 为名称,与上面2个的区别是在加载时可以不用写大括号还能自定义名称。
import命令
1、 概念
import用于加载export模块
2、 命令格式
1、 import { 变量名 [as 别名}} from “文件路径”
2、 import * as 别名 from “文件路径”(用于整体加载)
3、 import 变量名 from “文件路径”(用于加载匿名变量)
export与import的复合写法
1、 概念
先import加载,然后在export定义。
export {…} from “文件路径”;
等同于
import {…} from “文件路径”;
export {…}
1、 整体输出
export * from “文件路径”;
2、 别名输出
export { xxx as ddd} from “文件路径”
3、 匿名输出
export { xxx as default} from “文件路径”
浏览器加载
<script type = “module” src=”…”>
或
<script type=”module”>
import {…} from “文件路径”;
</script>
注意:module 为异步defer 加载,也就是异步加载,然后页面渲染完成后执行脚本。
import() 函数
import函数是动态加载模块或非模块脚本并无静态连接,返回一个promise对象,可获取加载状态。
1、 格式
import(“文件路径”)
2、例子
import(…).then(module=>module.变量)
输出变量被当前参数转给then函数了。
例子:匿名与非匿名加载
// a.js
export default function (val) {
console.log(val);
} export function test(val) {
console.log(val);
}
<script type="module">
'use strict';
import print,{test} from "./a.js";
print("ss"); // 匿名
test("test"); // test
</script>
例子:整体加载
<script type="module">
'use strict';
import * as target from "./a.js";
target.test("test函数");
target.default("匿名变量")
</script>
例子:动态加载
// 浏览器并没有实现动态导入模块
<script type="module">
import("./a.js").then(module => {
module.test("你好");
module.default("哈哈");
});
</script>
es6 Module语法的更多相关文章
- ES6 module语法加载 import export
export:暴露,就是把接口暴露出去 import:引入,跟字面意思一样,引入接口 export {} export function demo(){} export var demo1; 这上面的 ...
- ES6常用语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- JavaScript ES6 module 模块
在使用JavaScript开发大型项目时,模块开发概念是一个必须考虑的问题.其目的就是通过命名空间对各类业务对象进行一定的封装,防止命名冲突. 本篇着重介绍ES6 module中的export和imp ...
- ES6最新语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- 深入 CommonJs 与 ES6 Module
目前主流的模块规范 UMD CommonJs es6 module umd 模块(通用模块) (function (global, factory) { typeof exports === 'obj ...
- ES6常用语法简介import export
ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...
- ES6 | ES6新语法 在编码实践中的应用
本章探讨如何将 ES6 的新语法,运用到编码实践之中,与传统的 JavaScript 语法结合在一起,写出合理的.易于阅读和维护的代码. 多家公司和组织已经公开了它们的风格规范,本文的内容主要参考了 ...
- 通过ES6 Module看import和require区别
前言 说到import和require,大家平时开发中一定不少见,尤其是需要前端工程化的项目现在都已经离不开node了,在node环境下这两者都是大量存在的,大体上来说他们都是为了实现JS代码的模块化 ...
- 前端模块化IIFE,commonjs,AMD,UMD,ES6 Module规范超详细讲解
目录 为什么前端需要模块化 什么是模块 是什么IIFE 举个栗子 模块化标准 Commonjs 特征 IIFE中的例子用commonjs实现 AMD和RequireJS 如何定义一个模块 如何在入口文 ...
随机推荐
- [Swift]LeetCode351. 安卓解锁模式 $ Android Unlock Patterns
Given an Android 3x3 key lock screen and two integers m and n, where 1 ≤ m ≤ n ≤ 9, count the total ...
- awk小例子_1_逆序排列
seq 3 | awk '{ lifo[NR]=$0 } END{ for(lno=NR;lno>-1;lno--){ print lifo[lno]; } }' 结果:3 2 1 空行(lno ...
- the python challenge闯关记录(9-16)
9 第九关 是一张图,上面有很多的黑点,查看网页源代码发现了上一关的提示: 还发现了一大串的数字 感觉又是一个使用PIL库进行图像处理的题,百度后知道要将这些点连接起来并重新画图.但是不能在原始图上修 ...
- 开发常用的 Android 函数库
第三方函数库(译者注:包括第三方提供的 SDK,开源函数库)以惊人的方式助力着 Android 开发,借助这些其他开发人员辛勤工作的成果,我们开发起来更轻松和快捷.目前存在成千上万的函数库,如何选择正 ...
- Linux自启动执行脚本方法
1. 在/etc/rc.d/init.d/下创建脚本,要遵守service script的标准: 例如: vi /etc/rc.d/init.d/gfs #!/bin/bash#case " ...
- C# 多线程学习笔记 - 2
本文主要针对 GKarch 相关文章留作笔记,仅在原文基础上记录了自己的理解与摘抄部分片段. 遵循原作者的 CC 3.0 协议. 如果想要了解更加详细的文章信息内容,请访问下列地址进行学习. 原文章地 ...
- Python内置函数(40)——map
英文文档: map(function, iterable, ...) Return an iterator that applies function to every item of iterabl ...
- 『没有上司的舞会 树形DP』
树形DP入门 有些时候,我们需要在树形结构上进行动态规划来求解最优解. 例如,给定一颗\(N\)个节点的树(通常是无根树,即有\(N-1\)条无向边),我们可以选择任意节点作为根节点从而定义出每一颗子 ...
- java基础(五)-----关键字static
在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块. ...
- leetcode — pascals-triangle-ii
import java.util.Arrays; /** * * Source : https://oj.leetcode.com/problems/pascals-triangle-ii/ * * ...