From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/statements/export/index.html | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 files/ru/web/javascript/reference/statements/export/index.html (limited to 'files/ru/web/javascript/reference/statements/export') diff --git a/files/ru/web/javascript/reference/statements/export/index.html b/files/ru/web/javascript/reference/statements/export/index.html new file mode 100644 index 0000000000..4eca1d3d1b --- /dev/null +++ b/files/ru/web/javascript/reference/statements/export/index.html @@ -0,0 +1,131 @@ +--- +title: export +slug: Web/JavaScript/Reference/Statements/export +tags: + - ECMAScript6 + - JavaScript + - Statement + - export + - Инструкция + - Модули +translation_of: Web/JavaScript/Reference/Statements/export +--- +
{{jsSidebar("Statements")}}
+ +

Инструкция export используется для экспорта функций, объектов или примитивов из файла (или модуля).

+ +
+

Примечание: Эта функциональность не реализована в браузерах на данный момент, но она реализована во многих транспилерах, таких как Traceur Compiler, Babel or Rollup.

+
+ +

Синтаксис

+ +
export { name1, name2, …, nameN };
+export { variable1 as name1, variable2 as name2, …, nameN };
+export let name1, name2, …, nameN; // или var
+export let name1 = …, name2 = …, …, nameN; // или var, const
+
+export 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 …;
+ +
+
nameN
+
Идентификатор для экспорта (чтобы он мог быть импортирован с помощью {{jsxref("Statements/import", "import")}} в другом файле (скрипте)).
+
+ +

Описание

+ +

Существует два типа экспорта, каждый из которых описан ниже:

+ + + +

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

+ +

Касательно экспорта по умолчанию (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)); // 27
+console.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
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES6', '#sec-exports', 'Exports')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-exports', 'Exports')}}{{Spec2('ESDraft')}}
+ +

Совместимость с браузерами

+ + + +

{{Compat("javascript.statements.export")}}

+ +

Смотри также

+ + -- cgit v1.2.3-54-g00ecf