当前位置:   jquery > 正文

为什么出口/进口申报必须在2015年达到顶级水平?

javascript,ecmascript-6,babeljs,es2015,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我在上一个项目中开始使用es2015和babel.当我尝试做importexportif条件内时,我有一个错误'import' and 'export' may only appear at the top level.我看到了很多这样的情况require,但它与es2015模块配合使用效果不错.这种限制有什么理由吗?



1> sdgluck..:

JavaScript在ES6模块上执行静态分析.这意味着您无法动态执行导入或导出.有关更多信息,请阅读本文的第4.2节:

模块的结构是静态的意味着您可以在编译时确定导入和导出(静态) - 您只需要查看源代码,您不必执行它.

这种方法有很多原因,其中一些原因是为未来的功能准备JavaScript,这些功能依赖于源文件可静态分析的能力,即类型(在前面提到的文章中讨论过).

关于该主题的另一篇有趣的 文章提到循环依赖快速查找作为原因.

______

如果要export在模块的某个嵌套块中执行,请重新考虑如何编写模块并公开其API /内部,因为几乎肯定不需要.如果您当前正在requireES5代码中的嵌套块中使用模块,则同样如此.为什么不在require/ import在模块的顶部并在嵌套块中使用它们的API /内部?至少从可读性的角度来看,这种方法的主要优点是,您可以了解模块的依赖关系,而无需扫描其require调用源.


不仅如此,它们在概念上被提升,因为模块依赖性在任何代码执行之前都被完全处理,并且在"if"中导入的概念需要执行.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/jquery/detail/13471
推荐阅读
相关标签
  

闽ICP备14008679号