This page was translated from English by the community.Learn more and join the MDN Web Docs community.
export
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since май 2018 г..
Инструкцияexport используется для экспорта функций, объектов или примитивов из файла (или модуля).
Примечание:Эта функциональность не реализована в браузерах на данный момент, но она реализована во многих транспайлерах, таких какTraceur Compiler,Babel orRollup.
In this article
Синтаксис
export { name1, name2, …, nameN };export { variable1 as name1, variable2 as name2, …, nameN };export let name1, name2, …, nameN; // или varexport let name1 = …, name2 = …, …, nameN; // или var, constexport default выражение;export default function (…) { … } // или class, function*export default function name1(…) { … } // или class, function*export { name1 as default, … };export * from …;export { name1, name2, …, nameN } from …;export { import1 as name1, import2 as name2, …, nameN } from …;Описание
Существует два типа экспорта, каждый из которых описан ниже:
Именованный экспорт:
jsexport { myFunction }; // экспорт ранее объявленной функцииexport const foo = Math.sqrt(2); // экспорт константыДефолтный экспорт (экспорт по умолчанию) (один на скрипт):
jsexport default function () {} // или 'export default class {}'// тут не ставится точка с запятой
Именованная форма более применима для экспорта нескольких величин. Во время импорта, можно будет использовать одно и то же имя, чтобы обратиться к соответствующему экспортируемому значению.
Касательно экспорта по умолчанию (default), он может быть только один для каждого отдельного модуля (файла). Дефолтный экспорт может представлять собой функцию, класс, объект или что-то другое. Это значение следует рассматривать как "основное", так как его будет проще всего импортировать.
Примеры
>Использование именованного экспорта
Мы могли бы использовать следующий код в модуле:
// модуль"my-module.js"function cube(x) { return x * x * x;}const foo = Math.PI + Math.SQRT2;export { cube, foo };Таким образом в другом скрипте при помощи импорта (см.import) мы могли бы получить следующее:
import { cube, foo } from "my-module";console.log(cube(3)); // 27console.log(foo); // 4.555806215962888Использование export default
Если мы хотим экспортировать единственное значение или иметь резервное значение (fallback) для данного модуля, мы можем использоватьexport default.
// модуль"my-module.js"export default function cube(x) { return x * x * x;}Затем, в другом скрипте можно импортировать это значение по умолчанию таким образом:
import cube from "my-module";console.log(cube(3)); // 27Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-exports> |
Совместимость с браузерами
Смотрите также
import- ES6 in Depth: Modules, Hacks blog post by Jason Orendorff
- Axel Rauschmayer's book: "Exploring JS: Modules"