--- title: export slug: Web/JavaScript/Reference/Statements/export translation_of: Web/JavaScript/Reference/Statements/export ---
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.
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
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:
// exports một hàm được định nghĩa phía trước export { myFunction }; // exports một hằng số export const foo = Math.sqrt(2);
export default function() {}
export default class {}
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;
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
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ả | 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')}} |
{{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 |