Слайд 2Модули
Модули (modules), называемые также пространствами имен (namespaces), или пакетами (packages), - популярное
![Модули Модули (modules), называемые также пространствами имен (namespaces), или пакетами (packages), -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1129912/slide-1.jpg)
средство организацииJаvаSсгiрt-приложений. Каждый модуль поддерживает специфичную уникальную функциональность, явля ется самодостаточным и отделен от других модулей. Хотя вJavaScript со временем возникло несколько форматов модулей, разработчики пытаются формализовать создание модулей и управление ими.
Модуль – это просто файл. Один скрипт – это один модуль.
Слайд 3Модули
Модули работают в собственном верхнеуровневом контексте выполнения и потому не могут засорить
![Модули Модули работают в собственном верхнеуровневом контексте выполнения и потому не могут](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1129912/slide-2.jpg)
глобальный контекст выполнения, в который импортируются. По умолчанию все переменные, функции, классы и другие сущности, объявленные в модуле, закрыты в нем. Чтобы член был доступен извне, нужно указать перед ним
ключевое слово export
Слайд 4Модули
Этот модуль экспортирует объект myobject и функцию hello(). Его можно использо вать
![Модули Этот модуль экспортирует объект myobject и функцию hello(). Его можно использо](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1129912/slide-3.jpg)
в любых других местах - на странице или в другом модуле, - но импортировать из него можно только эти члены. Для импорта служит команда
export const myobject = {};
export const hello = () => {};
Слайд 5Модули
Каждый модуль имеет свою собственную область видимости. Другими словами, переменные и функции,
![Модули Каждый модуль имеет свою собственную область видимости. Другими словами, переменные и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1129912/slide-4.jpg)
объявленные в модуле, не видны в других скриптах.
Слайд 6Модули
Модули в HTML :
В модулях всегда включена директива use strict.
Код
![Модули Модули в HTML : В модулях всегда включена директива use strict.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1129912/slide-5.jpg)
в модулях выполняется только один раз. Экспортируемая функциональность создаётся один раз и передаётся всем импортёрам.
Слайд 7Импорт “как”
использовать as, чтобы импортировать под другими именами.
import {sayHi as hi, sayBye
![Импорт “как” использовать as, чтобы импортировать под другими именами. import {sayHi as](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1129912/slide-6.jpg)
as bye} from './say.js';
export {sayHi as hi, sayBye as bye};
export let name1, name2, …, nameN;
export let name1 = …, name2 = …, …, nameN;
export default выражение;
export default function (…) { … } // или class, function*
export default function name1(…) { … } // или class, function*
export { name1 as default, … };
export * from …;