1、前言

module模块机制是es6新引入的,它解决了作用域的问题,使代码更加规范和结构化。
下面简单的使用一下。

2、基本使用

2.1 模块和脚本的区别

  • 模块代码运行在严格模式下,并且没有任何办法跳出严格模式。
  • 在模块的顶级作用域创建的变量,不会影响到全局作用域,它们只会在模块顶级作用域的内部存在。
  • 模块顶级作用域的this值为undefined。
  • 模块不允许在代码中使用HTML风格的注释。
  • 模块允许到处需要外部引用的方法或变量。
  • 模块可以从其他模块导入绑定。

    2.2 几种使用方法

    2.2.1 导入单个(JS文件中)

    methods.mjs

    function mul(num1, num2) {
    return num1 * num2
    }
    export { mul }

    test.js

    import { mul } from "./methods.mjs";
    console.log(mul(2, 3));

    2.2.2 导入单个(浏览器中)

    HTML中
    方式一:

    //直接通过script标签引用,注意type选择module
    <script type="module" src="test.js"></script>

    运行结果:
    6

方式二:

<script type="module">
import { mul } from "./methods.mjs"
console.log("两个数的积是:", mul(2,3));
</script>

方式三:

<script type="module">
import { mul as cj } from "./methods.mjs"
console.log("两个数的积是:", cj(2,3));
</script>

运行结果:
6

2.2.3 导入多个

methods.mjs

export var color = "blue"
export let name = "Jerry"
export const count = 6
export function sum(num1, num2) {
return num1 + num2
}
function sub(num1, num2) {
return num1 - num2
}
function mul(num1, num2) {
return num1 * num2
}
export { sub, mul } // out 为模块的命名空间
let out = {
data: { color, name, count },
foo: sum,
foo2: sub,
foo3: mul
}
export { out }

HTML中

<script type="module">
import { sum, sub, mul} from "./methods.mjs"
console.log("两个数的和是:", sum(3, 2));
console.log("两个数的差是:", sub(3, 2));
console.log("两个数的积是:", mul(3, 2));
</script>

运行结果:
两个数的和是: 5
两个数的差是: 1
两个数的积是: 6

使用命名空间:

<script type="module">
import { out } from "./methods.mjs"
console.log("两个数的和是:", out.foo(3, 2));
console.log("两个数的差是:", out.foo2(3, 2));
console.log("两个数的积是:", out.foo3(3, 2));
console.log("颜色是", out.data.color);
console.log("名字是", out.data.name);
console.log("数量是", out.data.count);
</script>

运行结果:
两个数的和是: 5
两个数的差是: 1
两个数的积是: 6
颜色是 blue
名字是 Jerry
数量是 6

若要完全导入一个模块,使用 import * as methods from "./methods.mjs"

ES6学习笔记(十四)module的简单使用的更多相关文章

  1. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  2. (C/C++学习笔记) 十四. 动态分配

    十四. 动态分配 ● C语言实现动态数组 C语言实现动态数组,克服静态数组大小固定的缺陷 C语言中,数组长度必须在创建数组时指定,并且只能是一个常数,不能是变量.一旦定义了一个数组,系统将为它分配一个 ...

  3. 【转】angular学习笔记(十四)-$watch(1)

    本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...

  4. ES6学习笔记八(module模块export)

    1.导出export,导入import组合 知识点1:导出export lesson2.js export let A=; export function test(){ console.log('t ...

  5. angular学习笔记(十四)-$watch(1)

    本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...

  6. angular学习笔记(十五)-module里的'服务'

    本篇介绍angular中的模块:module 在笔记(二)http://www.cnblogs.com/liulangmao/p/3711047.html里已经讲到过模块,这篇主要讲模块的 '服务' ...

  7. ES6学习笔记(四)-数值扩展

    PS: 前段时间转入有道云笔记,体验非常友好,所以笔记一般记录于云笔记中,每隔一段时间,会整理一下, 发在博客上与大家一起分享,交流和学习. 以下:

  8. ES6学习笔记(四)数值的扩展

    1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 ...

  9. ES6 学习笔记(四)基本类型Number

    1.数值 1.1 .JavaScript数值的特点 不区分整数值和浮点数值. 所有数值均用浮点数值表示. 采用IEEE-754标准定义的64位浮点数格式表示. 整数在实际操作时(如数组索引),则是基于 ...

  10. JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)

    1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向 ...

随机推荐

  1. PlayCover for mac-Mac 上全屏运行 iOS 应用程序

    前言 如何在Mac电脑运行ios应用呢?PlayCover for Mac一款彻底解放苹果电脑的iOS软件安装工具,无需付费,操作简单,可以安装ipa文件,可以通过鼠标.键盘和控制器 在Mac上全屏运 ...

  2. NOI P序列题 (二分)

    题面 题解 --WQS二分 想到这个这题就完了. 赛时没想到这个你就完了. 时间复杂度 O ( n log ⁡ a ) O(n\log a) O(nloga) 不难发现这题有凸性,可以WQS二分. 我 ...

  3. 第四十篇:Vue的生命周期(一)

    好家伙,军训结束了,回归 Vue实例的生命周期 1.什么是生命周期? 从Vue实例创建,运行到销毁期间总是伴随着各种各样的事件,这些事件,统称为生命周期. 2.什么是生命周期钩子? 生命周期函数的别称 ...

  4. 存储更弹性,详解 Fluid “ECI 环境数据访问” 新功能

    近期,Fluid 支持了阿里云 ECI 应用,并将 JuiceFS Runtime Controller 设置为默认安装:JuiceFS 也就此功能与 Fluid 完成了集成和测试工作. 用户可以在 ...

  5. format添加未知个参数方法

    一个python巧妙技巧,分享给大家 我的需求是将一个dict的键都format输出,用到了*对字典解包 data = {a: 1, b: 2...} msg = f"{'{} '*len( ...

  6. Linux常用基础命令三

    一.ln 软链接 软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放 了链接其他文件的路径. 在查看文件目录中,软连接是以'l'开头 创建软链接 ln -s [原文件 ...

  7. K8S之YAML配置文件

    通过 YAML 配置文件 部署 Deployment 使用命令(类似 docker-compose) // 部署 kubectl create -f xxx.yml // 删除 kubectl del ...

  8. 0.web理解

    web前后端 网站的前端:通过用户肉眼看到的网站的布局内容,对网站的操作的功能,可以让用户可以直接接触与操作的部分. 用户通过访问前端的功能,前端分为 静态功能+动态功能 静态功能:静态功能则不会和后 ...

  9. Git Rebase-提交整洁之道

    git rebase git rebase是一个非常有用的命令,但知道和用的人非常少,今天介绍一下其作用 git rebase -i 作用:常用来合并多个相同目的的提交. 交互式有下面几个命令,常用命 ...

  10. .env[mode]文件中如何添加注释

    前言 Vue-Cli 允许我们在项目根目录创建.env.[mode]文件来设置一些打包编译的启动参数,通过执行脚本的时候加mode参数,指定不同环境需要加载的配置文件 形如: .env.prod NO ...