JavaScript——ES6新增特性模块化

js代码有3种方式把js脚本应用在页面中

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

<button onclick="javascript:console.log(111);var a=20;alert(a)">btn</button>

2.嵌入式 

<script>console.log("hello world")</script>

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

<script src="./src/test.js">console.log(123)</script>
//test.js
console.log("马上吃饭")

导入和嵌入一起使用是没有问题的,但只会运行导入的代码

权限:外部JS>内部JS>行内JS

ES6模块化

定义

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

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

特点

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

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

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

<!--test.js文件中 a=20-->
<script>
import a from './src/test.js'
a=30
console.log(a)//30
</script>

<script>
import a from './src/test.js'
console.log(a)20
</script>
  • 每一个模块只加载一次(是单例的), 若再去加载同目录下同文件,直接从内存中读取。

<!-- type="module"  因为js读取外部文件然后编码进来 需要babel软件来解码 -->
<script type="module">
import a from './src/test.js'
console.log(a.fn)
<!--fn(){}-->
console.log(a.a)
<!--20-->
import {b} from './src/test.js'
console.log(b)
<!--fn(){console.log("123")}-->
</script>
//test.js
var a=20;
export var fn=function(){};
export var b=function(){console.log("123")};
export var c=function(){};
export default {a,fn};

export导出

  • default关联使用,并且一个js模块中只能有一个export default语句

按需导出可以只导出一个,也可以导出多个

默认导出与"default"联用,可以导出多个值,需要用{}括起来(以对象的形式导出)

//导出字符串
export default "abc"

//导出数字
export default 123

//导出布尔值
export default true

//导出数组
export default [1,2,3]

//导出对象
var obj = {
	name: '张三',
	age: 20
}
export default obj

//导出函数
var func = function() {
	console.log("func函数")
	return 100
}
export default func


//导出类
class People {
	constructor() {
		this.a = 100
	}
	say() {
		console.log("say...")
	}
}
export default People

import导入

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

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

按需导出的时候,使用{标识符}来导入,使用的时候直接使用该标识符,有多个导入时,用分隔运算符隔开

默认导出的时候,使用任意一个标识符来导入,调用时使用"该标识符.需要调用的数据的属性名"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值