我知道在新的 ES6 模块语法中,JavaScript 引擎将不必evaluate了解所有导入/导出的代码,它只会parse它并“知道”要加载什么。
这听起来像是吊装。 ES6模块是否吊装?如果是这样,它们会在运行代码之前全部加载吗?
这段代码可以吗?
import myFunc1 from 'externalModule1';
myFunc2();
if (Math.random()>0.5) {
import myFunc2 from 'externalModule2';
}
经过更多研究后,我发现:
- 进口量大幅上涨!根据spec of 模块声明实例化
- 所有依赖的模块将在运行任何代码之前加载。
这段代码不会有错误,并且可以工作:
localFunc();
import {myFunc1} from 'mymodule';
function localFunc() { // localFunc is hoisted
myFunc1();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)