首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ES6导入语句福利

ES6导入语句福利
EN

Stack Overflow用户
提问于 2017-01-13 06:10:16
回答 1查看 1.6K关注 0票数 4

关于ES6导入的基本问题。为什么我们要导出模块,然后将其导入到另一个JS文件中?我们这样做有什么好处?在不进行出口和进口的情况下,实现这一目标的其他方法(即使是粗糙的)还有什么?换句话说,如果我要在ES5上工作,我将如何进行导出和导入?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-13 09:30:15

为什么我们要导出模块,然后将其导入到另一个JS文件中?我们这样做有什么好处?

模块的全部目的是为开发人员提供一种方便、干净和简单的方法,将他们的代码组织成可重用或可共享的模块。因此,使用模块的目的是以模块化的方式开发代码。

模块可以:

  1. 很容易在项目之间共享。
  2. 独立测试。
  3. 拥有自己的命名空间和作用域,并且可以有私有变量。
  4. 为代码体提供一个清晰且定义清晰的接口。
  5. 可以连接到用于加载代码段的代码加载机制。

虽然所有这些都可以在没有语言定义结构的情况下完成,但是人们可能会有很多不同的方式来完成这些工作,而为这些好处构建代码的人则要少得多。

这些好处对于通过NPM提供的数千个模块的node.js开发来说是非常明显的。如果没有每个人都订阅的标准模块设计,那么就很难共享大量和大量的代码,这些代码都可以完成不同的任务。ES6模块系统是对这种机制进行标准化的一种尝试。

如果我要从事ES5的工作,我将如何进行这种导出和导入?

你要么找到一个第三方模块系统来采用(在ES6之前有很多天,比如AMD或CommonJS),要么自己构建,要么放弃其中的一些好处。node.js模块系统就是在Javascript语言标准之外设计的这样一个系统。因为它内置于node.js中,是node.js项目加载多个源文件的主要机制,因此它成为了node.js开发的事实上的标准。

或者,您现在可以使用像Babel这样的转换程序,它将允许您用ES6编写代码,并将其转换为与ES5兼容的代码。您在代码中添加了一个" build“步骤,它类似于编译另一种语言(除了您正在进行转换而不是编译),并且您可以在ES6中编写和调试,但是您的代码保持了与ES5运行时引擎(例如旧浏览器)的兼容性,只有几个限制。

这里有一篇关于为什么模块的有用文章,以获得更多关于这个主题的信息?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41628382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档