ES6 —— 模块化

1)引入

        js代码有3种方式把js脚本写在页面上:

        1.行内式 : js引擎要去执行的标签的某些属性(事件)中

<button onclick="javascript:var a=20;alert(a)">按钮</button>

        2.嵌入式 :

<a href="javascript:void(0)">链接</a>

         3.导入式: src的地址时一个js的路径  会加载js编码(jsonp)

<script src="./test.js"></script>

2)概述

  • ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。

  • ES6 的模块化分为导出(export)导入(import)两个模块。

3)特点

  • ES6 的模块自动开启严格模式,不管你有没有在模块头部加上 use strict;

  • 模块中可以导入和导出各种类型的变量,如函数,对象,字符串,数字,布尔值,类等。

  • 每个模块都有自己的上下文,每一个模块内声明的变量都是局部变量,不会污染全局作用域。

  • 每一个模块只加载一次(是单例的), 若再去加载同目录下同文件,直接从内存中读取。

4)export导出

  • default关联使用,并且一个js模块中只能有一个export default语句,单独写在一个js文件中

var obj = {name:"xiaozhang"}

export var num = 100
export function tool() {return obj}

// 单独导出的 必须用导出的表示符来按需导入,可以有多个单独导出
// 默认导出  在这个文件中只能有一个或者0个

var a = 20
var arr = [1,2,3,4]
var fm = () => {}
export default {a,arr,fm}

5)import导入

  • from关联使用,此时script标签的type必须设置为module

  • 单例模式:多次重复执行同一句 import 语句,那么只会执行一次,而不会执行多次。import 同一模块,声明不同接口引用,会声明对应变量,但只执行一次 import

<!-- type="module"  因为js读取外部文件然后编码进来  需要babel软件来解码 -->
    <script type="module">
        import x,{num,tool} from "./src/test.js"
        console.log(num);
        console.log(tool);

        console.log(x);
        console.log(x.arr);

    </script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z_小张同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值