--- title: export slug: Web/JavaScript/Reference/Statements/export translation_of: Web/JavaScript/Reference/Statements/export ---
{{jsSidebar("Statements")}}

Lệnh export được sử dụng khi tạo các module JavaScript để export các hàm, đối tượng hoặc giá trị nguyên thủy trong module để chúng có thể được sử dụng bởi các chương trình khác bằng lệnh {{jsxref("Statements/import", "import")}}.

Tính năng này mới chỉ được triển khai trên Safari vào thời điểm hiện tại. Nó cũng được triển khai ở nhiều trình dịch (transpilers), ví dụ như Traceur Compiler, Babel hay Rollup.

Cú pháp

export { name1, name2, …, nameN };
export { variable1 as name1, variable2 as name2, …, nameN };
export let name1, name2, …, nameN; // còn có thể là var, function
export let name1 = …, name2 = …, …, nameN; // còn có thể là var, const

export default expression;
export default function (…) { … } // còn có thể là class, function*
export default function name1(…) { … } // còn có thể là class, function*
export { name1 as default, … };

export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;
nameN
Định danh được export (để có thể được import thông qua lệnh {{jsxref("Statements/import", "import")}} ở trong script khác).

Mô tả

Có nhiều kiểu export khác nhau. Mỗi kiểu tương ứng với một trong các cú pháp ở phía trên:

Export tên hữu ích khi dùng để export một vài giá trị. Khi import, có thể dùng cùng tên đó để truy xuất đến giá trị tương ứng.

Về export giá trị mặc định, chỉ có duy nhất một giá trị mặc định được export trên một module. Một giá trị được export mặc định có thể là một hàm, một lớp, một đối tượng hay bất cứ thứ gì khác. Giá trị này được coi là giá trị được export "chính" do nó sẽ là giá trị đơn giản nhất được import.

Export các giá trị mặc định: Cú pháp sau đây không export một giá trị được export mặc định từ module được import:

export * from …;

Nếu bạn muốn export giá trị mặc định, hãy dùng cú pháp sau:

import mod from "mod";
export default mod;

Ví dụ

Sử dụng export tên

Trong module, chúng ta có thể dùng code sau:

// module "my-module.js"
function cube(x) {
  return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export { cube, foo };

Với cách này, trong script khác (cf. import), chúng ta có:

import { cube, foo } from 'my-module';
console.log(cube(3)); // 27
console.log(foo);    // 4.555806215962888

Sử dụng export giá trị mặc định

Nếu chúng ta muốn export một giá trị duy nhất hay có một giá trị trả về mặc định từ module của mình, chúng ta có thể sử dụng export giá trị mặc định:

// module "my-module.js"
export default function cube(x) {
  return x * x * x;
}

Sau đó, trong script khác, có thể import thẳng giá trị được export mặc định:

import cube from 'my-module';
console.log(cube(3)); // 27

Chú ý là không thể dùng var, let hay const với export default.

Đặc tả

Đặc tả Trạng thái Chú thích
{{SpecName('ES2015', '#sec-exports', 'Exports')}} {{Spec2('ES2015')}} Định nghĩa ban đầu.
{{SpecName('ESDraft', '#sec-exports', 'Exports')}} {{Spec2('ESDraft')}}  

Tương thích với trình duyệt

{{CompatibilityTable}}

Tính năng Chrome Firefox (Gecko) Internet Explorer Opera Safari
Hỗ trợ cơ bản 61 (60 w/ flag) {{CompatNo}} (54 w/ flag) {{CompatNo}} (15 w/flag) {{CompatNo}} 10.1
Tính năng Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Hỗ trợ cơ bản {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}} 10.3

Xem thêm