Javascript ES6模块简介

本文介绍了JavaScript中模块的概念,探讨了为何需要模块以及模块的历史。重点讲解了ES6的模块特性,包括定义、使用、重命名、创建命名空间、合并及动态加载。文章还展示了如何在浏览器中使用ES6模块,并提及了当前ES6模块在浏览器兼容性上的挑战。
摘要由CSDN通过智能技术生成

为何要模块?JavaScript中能不使用模块吗?

首先什么是模块?模块就是一个对外提供功能的逻辑单元,当其他地方需要这个功能时,直接引入它即可,不用再重复写相应的功能逻辑,达到功能复用的目的。所以为何需要模块?模块可以做到功能或逻辑的划分,让逻辑线变得清晰,减少冗余重复代码的出现,方便进行开发和测试,也更好进行项目的控制。

JavaScript能不用模块吗?当然可以,如果JavaScript程序总体简单,引入模块反而有害。如果应用总体偏大,就有模块的必须性了,引入模块可以带来上述好处。

js模块的历史

早期,JavaScript就被设计为一种简单、弱类型、动态的语言,初衷是为了做表单验证。浏览器通过http协议将装载js代码的文件加载并执行,由于早期网页逻辑总体比较简单,文件彼此独立、没什么关联性,所以这个时候模块的意义是不明显的。

后来随着互联网的发展以及web2.0的到来,JavaScript这门简单易学并且强大的语言的很多潜在的特性被挖掘出来:ajax的应用,给web页面带来了质的飞越。各大浏览器厂商也在不断地提升对JavaScript新特性的支持。web页面也越来越复杂,各个js文件之间的关联性也越来越强,引入模块的急迫性越来越强。

由于JavaScript语言设计的时候并没有考虑到模块的问题,因此这个任务就落到了社区的肩膀上,社区首先引入了AMD规范(Asynchronous module definition ),对应的方案就是require.js。这样我们就可以通过AMD规范来在浏览器JavaScript上使用模块了。

与AMD相似的有JavaScript服务端环境的方案Commonjs规范。

ES6模块简介

此前的JavaScript总体发展平缓,后来JavaScript推出了新版本ES6,直接在语言层面定义了模块。

定义模块
// module.js

//导出多个功能项目
export function sayHi(){
   
	console.log('hello!')
}
export const name = 'Andy law'

//一次性导出多个项目
export {
    name,sayHi }

//导出一个默认功能项目
export default {
   
	name,
	sayHi
}
使用模块
//main.js

//引入单个功能项目
import {
    sayHi} from './module.js'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值