Готовый перевод 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
Настройки
Готово:
