需要并导入显示不同的行为.为什么这样



i同时使用requireimport,但两者都有一些不同的行为。到目前为止,我假设requireimport只是ES5 vs ES6。我正在做以下操作:

abc.js

console.log("abc");

xyz.js

console.log("xyz");

hello.js

require("./abc");
import "./xyz";

第二次更改文件并交换了两行。

hello.js

import "./xyz";
require("./abc");

这两次给出相同的输出

xyz
abc

即。require的输出始终是在导入之后。如果我仅使用导入或仅使用import,则它是按预期提供的控制台。一个接一个地。谁能帮助理解这一点?

通过import在CC_8中声明的模块在运行hello.js中的任何代码之前。import语句是否在另一个语句之后出现都没关系。在运行代码之前,该模块仍会加载。因此,这就是为什么无论您在何处放置import语句。

另一方面,

require()是程序化的。当您的程序运行时遇到require()语句时,将运行模块代码。

由于ES6模块尚待在Node.js中实现(不确定),我假设您正在使用babel用于transplats transplatplats export, import语句。

当Babel转移代码时,它总是将导入语句放置在模块顶部,因此发生这种情况。您可以在REPL中进行测试。

演示

importrequire

的更多深入详细信息

最新更新