面试题答案
一键面试在ES6模块系统中,模块的加载和执行是自动处理依赖关系的。以下通过代码示例来说明:
假设我们有三个模块 A.js
、B.js
和 C.js
。
B.js
// B.js
export const bValue = 'This is from B';
C.js
// C.js
export const cValue = 'This is from C';
A.js
// A.js
import { bValue } from './B.js';
import { cValue } from './C.js';
export const aValue = `A depends on B: ${bValue} and C: ${cValue}`;
在HTML页面中使用这些模块:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ES6 Modules Dependency</title>
</head>
<body>
<script type="module">
import { aValue } from './A.js';
console.log(aValue);
</script>
</body>
</html>
在上述代码中,当浏览器遇到 import
语句时,会按照依赖关系依次加载和执行模块。尽管是并发加载,但ES6模块系统会确保在执行 A.js
之前,B.js
和 C.js
已经被加载并执行完毕,从而保证依赖关系的正确处理。