Cả export
và export default
đều là các tính năng được giới thiệu trong ES6 (ECMAScript 2015). Chúng giúp tổ chức mã tốt hơn, cho phép chia tách và tái sử dụng code dễ dàng hơn bằng cách sử dụng mô-đun (module).
- Sự khác biệt giữa
export default
vàexport
trong JavaScript:export
:- Được sử dụng để xuất (export) nhiều giá trị từ một module.
- Có thể export các biến, hàm, hoặc class.
- Khi sử dụng
export
, bạn cần import các giá trị đó bằng cú pháp tên cụ thể và phải khớp chính xác. - Ví dụ:
// module.js export const name = "Alice"; export function greet() { console.log("Hello!"); } // anotherFile.js import { name, greet } from './module.js';
export default
:- Chỉ cho phép export một giá trị duy nhất từ một module.
- Giá trị được export có thể là một biến, một hàm, hoặc một class.
- Khi sử dụng
export default
, bạn có thể import giá trị với bất kỳ tên nào bạn muốn. - Ví dụ:
// module.js export default function greet() { console.log("Hello!"); } // anotherFile.js import myGreetFunction from './module.js'; // Tên `myGreetFunction` có thể thay đổi
- Khi một file module có cả
export default
vàexport
thường, bạn có thể import chúng bằng cách sử dụng cả hai cú pháp:- Import giá trị
export default
: Bạn sử dụng cú pháp import với bất kỳ tên nào bạn muốn. - Import các giá trị
export
thường: Bạn cần sử dụng cú pháp dấu ngoặc nhọn{}
và tên chính xác của giá trị được export. - Cách export:
// module.js export const name = "Alice"; export function greet() { console.log("Hello!"); } export default function defaultFunction() { console.log("This is the default function!"); }
- Cách import:
// anotherFile.js import defaultFunc, { name, greet } from './module.js'; defaultFunc(); // "This is the default function!" console.log(name); // "Alice" greet(); // "Hello!"
- Giải thích:
defaultFunc
: Đây là cách importexport default
và có thể đặt tên tùy ý.{ name, greet }
: Đây là cách import các giá trịexport
thường. Tên phải khớp chính xác.
Có thể kết hợp cả hai dạng import trong cùng một dòng lệnh như trong ví dụ trên.
- Import giá trị
Tóm tắt:
export
: Dùng để xuất nhiều giá trị và yêu cầu import bằng tên cụ thể.export default
: Chỉ xuất một giá trị duy nhất và cho phép import với bất kỳ tên nào.

Dương Trần Hà, hiện mình đang là kỹ công nghệ phần mềm và cũng là giám đốc thành lập công ty DTH Solutions. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn lập trình, nodejs, nestjs, laravel, yii2, reactjs, nextjs. Mình đã phát triển rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số thành công nhỏ, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.