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. 刷题记录:Codeforces Round #734 (Div. 3)

    Codeforces Round #734 (Div. 3) 20210920.网址:https://codeforces.com/contest/1551. 编程细节:下标定义不要一会[1,n]一会 ...

  2. 【Manim】关于add_updater的基本使用方法

    add_updater(update_function,index=None,call_update=False) 后面两个参数可以不写. update_function更新函数一般填入一个lambd ...

  3. 分布式协同AI基准测试项目Ianvs:工业场景提升5倍研发效率

    摘要:全场景可扩展的分布式协同AI基准测试项目 Ianvs(雅努斯),能为算法及服务开发者提供全面开发套件支持,以研发.衡量和优化分布式协同AI系统. 本文分享自华为云社区<KubeEdge|分 ...

  4. Kotlin快速上手

    一.Kotlin基础 1.数据类型声明 在Kotlin中要定义一个变量需要使用var关键字 //定义了一个可以修改的Int类型变量 var number = 39 如果要定义一个常量可以使用val关键 ...

  5. 手写tomcat——netty版

    点击查看代码 package com.grady.diytomcat; import com.grady.diytomcat.handler.DiyNettyTomcatHandler; import ...

  6. 谣言检测——(GCAN)《GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Media》

    论文信息 论文标题:GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Medi ...

  7. CMD和Entrypoint命令使用变量的用法

    CMD 支持三种格式 CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式: CMD c ...

  8. Centos安装nodejs,npm (压缩包)

    下载node阿里云镜像(推荐) 地址:https://npm.taobao.org/mirrors/node/latest-v14.x/ 选择自己要下载的版本,这里我选择的v14.6.0 cd /us ...

  9. spring boot http status 400

    SpringBootAdmin不是Spring官方提供的模块,它包含了Client和Server两部分.server部分提供了用户管理界面,client即为被监控的服务.client需要注册到serv ...

  10. MySQL集群搭建(2)-主主从模式

    1 环境准备 上次我们搭建了主备架构,如下所示 这次我们的搭建目标是 具体配置信息 IP 系统 端口 MySQL版本 节点 读写 说明 192.168.41.83 Centos6.8 3306 5.7 ...