Готовый перевод Modern JS Cheatsheet / Памятка по современному JavaScript: Импорт / экспорт

### Импорт / экспорт

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

Крайне рекомендую почитать ресурсы MDN об экспорте/импорте (см. внешние ресурсы ниже), в них содержится четкая и полная информация.

#### Объяснение с примером кода

- Именованный экспорт

Именованный экспорт используется для экспорта нескольких значений из модуля. Таким образом можно экспортировать только переменные (не функции и не классы), так что если вы хотите использовать именованную форму для экспорта функции, эту функцию нужно сначала записать в переменную.

```js
// mathConstants.js
export const pi = 3.14;
export const exp = 2.7;
export const alpha = 0.35;
// -------------

// myFile.js
import { pi, exp } from './mathConstants.js'; // Именованный импорт -- с синтаксисом, похожим на деструктуризацию
console.log(pi) // 3.14
console.log(exp) // 2.7
// -------------

// mySecondFile.js
import * as constants from './mathConstants.js'; // Все экспортированные значения записываются в переменную constants
console.log(constants.pi) // 3.14
console.log(constants.exp) // 2.7
```

- Импорт / экспорт по умолчанию

Экспорт по умолчанию может быть только один на каждый модуль. Это может быть функция, класс, объект или что-то еще. Это значение считается "главным", поскольку его будет проще всего импортировать [Ссылка: MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export#Description)

```js
// coolNumber.js
const ultimateNumber = 42;
export default ultimateNumber;
// ------------

// myFile.js
import number from './coolNumber.js';
// В переменную number автоматически попадает экспорт по умолчанию - вне зависимости от его имени в исходном модуле.
console.log(number) // 42
```

Экспорт функций:

```js
// sum.js
export default function sum(x, y) {
return x + y;
}
// -------------

// myFile.js
import sum from './sum.js';
const result = sum(1, 2);
console.log(result) // 3
```

#### Внешние ресурсы

- [Экспорт - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export)
- [Импорт - MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import)
- [Понимание модулей в ES6](https://www.sitepoint.com/understanding-es6-modules/)
- [Модули в JavaScript](http://exploringjs.com/es6/ch_modules.html#sec_modules-in-javascript)

Переведено на Нотабеноиде
http://notabenoid.org/book/70916/381886

Переводчики: Tomatoknight

Настройки

Готово:

100.00% КП = 1.0