концепция Модулей в JS (ES6)?

Объясните пожалуйста, какое назначение экспортирование и импортирования отдельных модулей, если в процессе подключения js файлов с данными модулями, они всё равно становятся доступными из вне. Приведу пример. Предположим есть модуль

function sayHello(){
 console.log("Hello!");
}
export {sayHello}

и мы его импортируем в файле index.js . Чем конструкция html страницы

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
<script src="index.js"></script>
<!-- Тут с импортируемым модулем -->
</head>
<body>
<div class="main"></div>
</body>
</html>

Будет отличаться от разметки типа

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
<script src="index.js"></script>
<script src="sayHello.js"></script>
</head>
<body>
<div class="main"></div>
</body>
</html>

(Ну кроме лишнего запроса на сервер) Есть отличия в этой модульной системе ?


Ответы (1 шт):

Автор решения: JK_Action

Вы не можете делать import внутри своего скрипта при таком методе подключения на страницу. Я вобще не уверен, что это будет работать. Такие модули корректно подключать через.

<script type="module" src="index.js"></script>
→ Ссылка