ES6 module 与commonjs和 module.exports与exports对比。

1.cjs和esm是两种规范,
2.cjs是运行时实现的,esm是静态编译
3.使用esm可以做tree shakes,cjs不行
4.esm只能在顶部使用,不能在if语句或者函数内部使用,并且cjs会有提升
5.两种都有缓存,同一个模块导出只会改执行一次

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
A:ES6模块与CommonJS都是用来在JavaScript中实现模块化的方式,但它们有一些不同的特点和语法。 在代码中使用ES6模块,可以使用以下语法: 1.通过export关键字将模块中的变量、函数或类导出: ``` // module.js export const pi = 3.1415926; export function multiply(x, y) { return x * y; } export class Circle { /*...*/ } ``` 2.通过import关键字导入其他模块的变量、函数或类: ``` // app.js import { pi, multiply, Circle } from './module.js'; console.log(pi); // 3.1415926 console.log(multiply(2, 3)); // 6 ``` 3.还可以使用import * as语法将所有导出的内容作为一个对象导入: ``` // app.js import * as MyModule from './module.js'; console.log(MyModule.pi); // 3.1415926 console.log(MyModule.multiply(2, 3)); // 6 ``` 在代码中使用CommonJS,可以使用以下语法: 1.通过module.exports将模块中的变量、函数或类导出: ``` // module.js const pi = 3.1415926; function multiply(x, y) { return x * y; } class Circle { /*...*/ } module.exports = { pi, multiply, Circle }; ``` 2.使用require函数导入其他模块的变量、函数或类: ``` // app.js const MyModule = require('./module.js'); console.log(MyModule.pi); // 3.1415926 console.log(MyModule.multiply(2, 3)); // 6 ``` 需要注意的是,ES6模块和CommonJS是不兼容的,不能混合使用。如果需要在同一个项目中使用两者,需要使用转换工具(如babel)将ES6模块转换为CommonJS模块。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值