【核心基础知识】模块化的模块规范和实现方式

作为前端开发者或许早已习惯了在开发组件时使用 import 和 export 来管理代码模块,在编写 Node.js 服务时通过 require 和 module.exports 来复用代码。但 JavaScript 模块化之路充满了坎坷,JavaScript 模块发展史上有很多著名的模块规范与实现。

一.ES6模块

目前最主流的模块化方案应该是 ECMAScript 2015 提出的模块化规范(也称“ES6 模块”),这个规范同时适用于 JavaScript 的前后端环境。

1.定义和引用

3个小知识.

  • ES6 模块强制自动采用严格模式,所以说不管有没有“user strict”声明都是一样的,换言之,编写代码的时候不必再刻意声明了;
  • 虽然大部分主流浏览器支持 ES6 模块,但是和引入普通 JS 的方式略有不同,需要在对应 script 标签中将属性 type 值设置为“module”才能被正确地解析为 ES6 模块;
  • 在 Node.js 下使用 ES6 模块则需要将文件名后缀改为“.mjs”,用来和 Node.js 默认使用的 CommonJS 规范模块作区分。

2.特性

ES6 模块有两个重要特性一定要掌握,一个是值引用,另一个是静态声明

值引用是指 export 语句输出的接口,与其对应的值是动态绑定关系。即通过该接口,可以取到模块内部实时的值,可以简单地理解为变量浅拷贝。示例如下.

// a.js
export var a = '';
setTimeout((

你可能感兴趣的:(前端进阶学习笔记,javascript,es6/es7,模块化)