Bản dịch này chưa hoàn thành. Xin hãy giúp dịch bài viết này từ tiếng Anh.

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 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 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:
    // 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 giá trị mặc định (hàm):
    export default function() {} 
  • Export giá trị mặc định (lớp):
    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;

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
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Exports' in that specification.
Standard Định nghĩa ban đầu.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Exports' in that specification.
Living Standard  

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

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

Xem thêm

Document Tags and Contributors

 Những người đóng góp cho trang này: hieuns
 Cập nhật lần cuối bởi: hieuns,