网站首页
手机版

前端JavaScript 前端JavaScript忘记密码

更新时间:2024-03-29 13:13作者:小乐

我读过很多关于这个主题的文章,但其中很多都不清楚,而且我总是抓住要点。下面我们就来总结一下,免得大家再困惑。最初,JavaScript 无法导入/导出模块。这是一个大问题。想象一下如果要求您将所有代码写入一个文件中会发生什么。你愿意维护它吗?然后一些天才想到了一种不同的方法将模块系统引入JavaScript。最著名的是这些,CJS、AMD、UMD、ESM。我们从语法、用途和基本行为这几个方面一一介绍一下。 CJSCJS 是CommonJS 的缩写。如下图所示:

如果你使用过Node.js,你应该熟悉这个语法。它是Node.js 的模块系统。 CJS同步导入模块。您可以从文件或node_modules 导入模块。以下两者都可以使用CJS 导入。它将为您提供导入对象的副本。 CJS不被浏览器支持,只能在后端使用。如果要在前端使用,必须先编译打包。 AMDAMD 是异步模块定义的缩写。示例代码如下:

或者

AMD 以异步方式引入模块。 AMD是为前端而设计的。语法不如CJS 直观。 UMDUMD 是通用模块定义的缩写。示例代码如下:

UMD可以在前端和后端工作。 (我猜这就是Universal、通用的由来)UMD更像是一种配置多模块系统的模式。 UMD通常用于打包工具打包后的代码实现,例如Rollup/Webpack等。ESMESM代表EcmaScript Module。它是JavaScript规范提出的最新模块系统。您一定见过类似这样的代码:

现代浏览器本身就支持ESM。它具有简单的语法(如CJS)并且是异步导入的(如AMD)。它具有两者的共同优点。由于ES6的静态模块结构,它可以进行tree-shakeable。那些打包工具,比如Rollup,可以帮助你删除无用的代码,这样你就可以获得更精简的构建,从而提高性能。也可以用在HTML 中,总结如下

ESM是最好的模块系统。它具有简单的语法,本质上是异步的,并且可以用作Tree-shakeableUMD 前端和后端。它可以用作不支持ESM 环境的替代系统。 CJS是同步的,可以在后端使用。 AMD是异步的,可以用在前端。

为您推荐

UMD团队打造可玩《超级马力欧兄弟》的气动软机械手

马里兰大学的一支研究团队,刚刚在《科学进展》期刊上介绍了他们新研发的一款气动软机械手,特点是灵活到能够玩《超级马力欧兄弟》。与机械结构更加复杂的机械手方案相比,这种新式气动手要简单得多。因为传统电子机械手必须将单独的控制线路遍布每个手指,结

2024-03-29 13:00

Javascript 中的 CJS、AMD、UMD 和 ESM 是什么?

一开始,Javascript 没有办法导入/导出模块。这是个问题。想象一下,在一个文件中编写您的应用程序 - 这将是一场噩梦!然后,比我聪明得多的人试图为 Javascript 添加模块化。其中一些是CJS、AMD、UMD 和 ESM。您可

2024-03-29 12:47

美国最新油电混动军车,和比亚迪唐的模式几乎一致,美国油电混合车型推荐

这款ULV最大亮点就是采用了油电混和驱动系统。(ULV的研发机构,主要承担美军单兵作战系统以及新材料军用化的研发任务。)就在搭载超级电四驱技术的比亚迪混动车唐上市后,美国陆军开始对ULV(Ultra Light Vehicle)油电混动军车

2024-03-29 12:33

拉文大学相当于中国什么等级的大学?(拉文大学mba)

拉文大学 (University of La Verne)简称ULV。创立于1891年,是美国西部最古老的国家级大学之一,建校超过125周年。其前身是教会创立的洛兹伯格学院。1917年洛兹伯格农业社区更名为拉文,学院也随之成为拉文学院。学校

2024-03-29 12:27

印度欲制造超过长征五号的大火箭,还在搞太空军事化(印度重型火箭)

印度一直有个大国梦,在各个领域都希望能出人头地,虽然实际效果不一定像他们想象的那么美好。但是印度的航天水平确实是比较领先的,比很多发达国家的水平还要强。如果说美国、欧空局、中国、俄罗斯、日本是航天综合实力前五名的话,印度是当之无愧的第六名,

2024-03-29 12:12

美国的ULV,俄罗斯的GAZ,这些军用越野车,每辆都让人热血沸腾!,俄罗斯最新军用越野车

今天我们来说点不一样的,越野车大家都司空见惯,但军用越野车相信各位都很陌生吧,它们只为部队服务,很少出现在大众视野,但各个性能不俗随便来一辆都能秒杀牧马人、普拉多、猛禽等热门越野车,今天就让我们看看全球各式各样的军用越野车。美国:ULV这辆

2024-03-29 11:57

加载中...

热门文章

SQL Error: select * from ***_ecms_news where titlepic<>'' order by onclick desc limit 1
    SQL Error: select * from ***_ecms_news order by onclick desc limit 1,7

热门推荐

SQL Error: select * from ***_ecms_news where titlepic<>'' and istop=1 order by newstime desc limit 5