首页 > 其他分享 >CommonJs与ESModule的区别

CommonJs与ESModule的区别

时间:2022-10-05 15:12:10浏览次数:46  
标签:CommonJs 区别 ESModule 导出 导入 模块 加载

  1. 两者的模块导入导出语法不同,CommonJs是通过module.exports,exports导出,require导入;ESModule则是export导出,import导入。
  2. CommonJs是运行时加载模块,ESModule是在静态编译期间就确定模块的依赖。
  3. ESModule在编译期间会将所有import提升到顶部,CommonJs不会提升require。
  4. CommonJs导出的是一个值拷贝,会对加载结果进行缓存,一旦内部再修改这个值,则不会同步到外部。ESModule是导出的一个引用,内部修改可以同步到外部。
  5. CommonJs中顶层的this指向这个模块本身,而ESModule中顶层this指向undefined。
  6. CommonJS加载的是整个模块,将所有的接口全部加载进来,ESModule可以单独加载其中的某个接口

标签:CommonJs,区别,ESModule,导出,导入,模块,加载
From: https://www.cnblogs.com/qianduan-Wu/p/16755611.html

相关文章

  • Nginx try_files 和 rewrite 的区别
    try_files 是试图按指定文件的顺序依次尝试是否能获取响应内容,如果能获取响应内容,则向客户端返回响应内容。否则继续尝试从下一个指定文件获取响应内容。rewrite是按指......
  • 关于项目编译工具ninja、make、cmake的区别与优劣
    ninja和make都是通过脚本语言指定编译规则,然后调用gcc等编译器实现自动化编译,过程中会通过文件时间戳来进行增量构建。ninjaNinja是Google的一名程序员推出的注重速度的构......
  • 对Const容器和普通容器取迭代器的区别
    简述就常规来讲,当我们使用std::begin()函数来取得一个容器的迭代器时,我们会认为不管什么情况下,都会返回一个指向该容器的普通迭代器,但是实际上并不是这样,当我们通过Const&......
  • TCP和UDP的联系和区别
    一、TCP、UDP的区别1、TCP(传输控制协议):1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算......
  • Demo16_DoWhile与While的区别
    //DoWhile循环结构特性packagecom.HuanXin.JiBen_JieGou;publicclassDemo08_DoWhile1{publicstaticvoidmain(String[]args){intA=0;while(......
  • 大名鼎鼎的RPC和MQ到底有啥区别和联系
    RPC(RemoteProcedureCall)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制。RPC框架知名度较高的有Thrift(FB的)、dubbo(阿里的)。 RPC的一般需要经历4......
  • TCP与UDP的联系与区别
    UDP(UserDataProtocol,用户数据报协议)1、UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网......
  • 面试官:Redis 过期删除策略和内存淘汰策略有什么区别?
    作者:小林coding​大家好,我是小林。Redis的「内存淘汰策略」和「过期删除策略」,很多小伙伴容易混淆,这两个机制虽然都是做删除的操作,但是触发的条件和使用的策略都是不同的。......
  • SPAFA 和Dijkstra的区别
    SPAFA和Dijkstra的区别Dijkstra算法和SPFA算法都可以用于求单源最短路,前者可以用小根堆进行优化,后者用就是用队列优化过的Bell-manFord,下面说一说这两者的区别:Dijkstra......
  • java的jvm堆中的内存泄露和内存溢出的概念以及区别【杭州多测师】【杭州多测师_王sir
    一、什么是内存溢出和内存泄露内存泄漏(memoryleak):是指程序在申请内存后,无法释放已申请的内存空间,导致系统无法及时回收内存并且分配给其他进程使用。通常少次数的内存无......