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

文章目录

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. 可以全部导出,也可以部分导出
javascript 复制代码
//定义对象,变量,常量, 函数
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. 细节: 这时要求导入的名称和导出的名称一致
javascript 复制代码
//导入
/**
 * 解读
 * 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

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

javascript 复制代码
//定义对象,变量,常量, 函数

//定义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

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

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

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

其它导出形式--默认导出

创建common3.js

如果是默认导出, 导入的时候,使用的语法

可以这里理解, 类似把 {} 当做一个对象导出

javascript 复制代码
//定义对象,变量,常量, 函数

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

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

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

好处是 m 名称是可以自己指定的.

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

javascript 复制代码
//导入默认导出模块/数据
//好处是 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, 一次导出多个, 导入时,导入变量名可自己指定

csharp 复制代码
//导出模块,简洁写法
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 种.其它方式能够看懂即可.

相关推荐
Qrun1 天前
Windows11安装nvm管理node多版本
前端·vscode·react.js·ajax·npm·html5
中国lanwp1 天前
全局 npm config 与多环境配置
前端·npm·node.js
JELEE.1 天前
Django登录注册完整代码(图片、邮箱验证、加密)
前端·javascript·后端·python·django·bootstrap·jquery
TeleostNaCl1 天前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
charlie1145141911 天前
CSS笔记4:CSS:列表、边框、表格、背景、鼠标与常用长度单位
css·笔记·学习·css3·教程
tjsoft1 天前
汇通家具管理软件 1.0 试用笔记
笔记
前端大卫1 天前
为什么 React 中的 key 不能用索引?
前端
你的人类朋友1 天前
【Node】手动归还主线程控制权:解决 Node.js 阻塞的一个思路
前端·后端·node.js
卡提西亚1 天前
C++笔记-10-循环语句
c++·笔记·算法
Cathy Bryant1 天前
概率论直觉(一):大数定律
笔记·考研·数学建模