js之模块化(3)

简介: js之模块化(3)

随着ES6 Module的出现,我们在项目中也大概率的采用了ES6 Module的写法,主要是采用import 和export关键字,进行引入和导出。具体语法课参考https://www.jianshu.com/p/e595c376573e
当然后来还出现了动态导入,也就是懒加载可参考
https://www.jianshu.com/p/e595c376573e

ES6 Module和Commonjs的区别
commonjs只能在运行的时候,确定导出的内容,但是ES6 Module是在编译阶段,确定依赖关系,也就是说编译时加载。正因为如此,import具有提升效果。

所以下面写法是合法的

const age = getAge()
import {
    getAge } from 'a.js'

因为ES6 Module是在编译的时候加载,所以我们在引入的时候不能使用表达式和变量。因为这些是要在运行时才能得到结果的。

// 报错
let module = 'a.js'
import {
    name } from module

前几篇帖子有提到过commonjs中,使用require引入,是对导出值的深拷贝,也就是说之后,模块再怎么变化,也不会影响到该值。
之前的例子:

// a.js
var name = 'morrain'
var age = 18
exports.name = name
exports.age = age
exports.setAge = function(a){
   
    age = a
}

// b.js
var a = require('a.js')
console.log(a.age) // 18
a.setAge(19)
console.log(a.age) // 18

对于ES6 Module写法

//a.js
var name = 'morrain'
var age = 18
setAge = function(a){
   
    age = a
}
export {
   name,age,setAge}
//b.js
import * as a from 'a.js';
console.log(a.age) // 18
a.setAge(19)
console.log(a.age) // 19
相关文章
|
5月前
|
JavaScript 前端开发 测试技术
如何编写JavaScript模块化代码
如何编写JavaScript模块化代码
31 0
|
1月前
|
JavaScript UED
js之模块化(2)
js之模块化(2)
|
2月前
|
JavaScript 前端开发 编译器
解锁JavaScript模块化编程新纪元:从CommonJS的基石到ES Modules的飞跃,探索代码组织的艺术与科学
【8月更文挑战第27天】随着Web应用复杂度的提升,JavaScript模块化编程变得至关重要,它能有效降低代码耦合度并提高项目可维护性及扩展性。从CommonJS到ES Modules,模块化标准经历了显著的发展。CommonJS最初专为服务器端设计,通过`require()`同步加载模块。而ES Modules作为官方标准,支持异步加载,更适合浏览器环境,并且能够进行静态分析以优化性能。这两种标准各有特色,但ES Modules凭借其更广泛的跨平台兼容性和现代语法逐渐成为主流。这一演进不仅标志着JavaScript模块化的成熟,也反映了整个JavaScript生态系统的不断完善。
38 3
|
1月前
|
JavaScript 前端开发 开发者
js之模块化(1)
js之模块化(1)
|
2月前
|
前端开发 JavaScript
前端必会的JavaScript模块化
【8月更文挑战第3天】JavaScript模块化
23 1
|
2月前
|
存储 缓存 JavaScript
JavaScript——请列出目前主流的 JavaScript 模块化实现的技术有哪些?说出它们的区别?
JavaScript——请列出目前主流的 JavaScript 模块化实现的技术有哪些?说出它们的区别?
28 0
|
3月前
|
JavaScript 前端开发
node.js 导入导出模块(CommonJS模块化规范,ES6模块化规范)
node.js 导入导出模块(CommonJS模块化规范,ES6模块化规范)
40 1
|
4月前
|
JavaScript 前端开发
JavaScript进阶-Class与模块化编程
【6月更文挑战第21天】**ES6引入Class和模块化,提升JavaScript的代码组织和复用。Class是原型机制的语法糖,简化面向对象编程。模块化通过`import/export`管理代码,支持默认和命名导出。常见问题包括`this`指向和循环依赖。理解这些问题及避免策略,能助你写出更高效、可维护的代码。**
58 5
|
4月前
|
JSON JavaScript 前端开发
Javascript 模块化编程的方法和代码
Javascript 模块化编程的方法和代码
32 1
|
3月前
|
JavaScript 前端开发 API
JavaScript编码之路【ES6新特性之模块化】
JavaScript编码之路【ES6新特性之模块化】
36 0
下一篇
无影云桌面