# Создание ES модуля в JavaScript

Приступим теперь к изучению модулей. Каждый модуль должен представлять собой отдельный файл. Переменные и функции, которые мы разместим в этом файле, не будут доступны снаружи файла. В этом преимущество модулей - мы можем создавать любые переменные и функции, не боясь конфликта с именами из других библиотек.

Те переменные и функции, которые мы хотим сделать видимыми снаружи, мы должны экспортировать с помощью команды `export`.

Давайте попробуем на примере. Сделаем модуль `math`, который будет предоставлять библиотеку функций для математических операций.

Разместим наш модуль в файле `math.js` и сделаем в нем несколько функций:

`function root2(num) { return round(num ** (1 / 2)); } function root3(num) { return round(num ** (1 / 3)); } function round(num) { return num.toFixed(2); }`

Пусть функции для извлечения корней будут основными и будут экспортироваться наружу, а функция для округления - вспомогательной и не будет экспортироваться. Давайте напишем нужным функциям команду `export`:

`export function root2(num) { return round(num ** (1 / 2)); } export function root3(num) { return round(num ** (1 / 3)); } function round(num) { return num.toFixed(2); }`

Сделайте модуль, содержащий функцию `pow2` для возведения числа во вторую степень, `pow3` для возведения в третью и `pow4` для возведения в четвертую.

← →
↑
en ru