Bạn đã bao giờ rơi vào thảm cảnh: nhận một Object (đối tượng) khổng lồ từ API, sau đó phải tốn cả chục dòng const chỉ để lôi từng thuộc tính ra dùng chưa? Kiểu như const name = data.user.name, const age = data.user.age... Nhìn thôi đã thấy nản, chưa kể code thì dài dằng dặc như sớ táo quân mà lại cực kỳ khó bảo trì.
Đó là lúc JavaScript Destructuring (kỹ thuật phân rã) xuất hiện như một "vị cứu tinh". Không chỉ giúp code ngắn lại, nó còn làm cho tư duy xử lý dữ liệu của bạn trở nên chuyên nghiệp và hiện đại hơn hẳn. Hãy cùng mình tìm hiểu cách để biến đống code rườm rà đó thành những dòng lệnh "sạch bong sáng bóng" nhé!
1. Bóc tách Object - Đừng "chấm" nữa, mệt rồi!
Thông thường, để lấy dữ liệu từ một đối tượng, chúng ta hay dùng dấu chấm (dot notation). Nhưng nếu bạn cần lấy 5-10 thuộc tính cùng lúc, việc lặp đi lặp lại tên đối tượng đó là một cực hình. Với JavaScript Destructuring, bạn chỉ cần một dòng duy nhất để "hốt trọn" những gì mình cần.

const user = {
id: 1,
username: 'diademy_student',
email: 'hoc@uxui.edu.vn'
};
// Thay vì: const username = user.username;
// Hãy dùng:
const { username, email } = user;
console.log(username); // Kết quả: diademy_studentĐặc biệt, nếu tên thuộc tính trong Object quá dài hoặc trùng với biến đã có, bạn có thể đổi tên (alias) ngay khi bóc tách bằng dấu hai chấm (:). Mẹo này cực kỳ hữu ích khi bạn kết hợp với các JavaScript Array Methods để xử lý danh sách dữ liệu phức tạp.
Mẹo nhỏ: Bạn có thể thiết lập giá trị mặc định cho biến ngay trong lúc phân rã. Nếu thuộc tính đó không tồn tại trong Object, biến sẽ nhận giá trị bạn đã gán sẵn thay vì bị undefined.
2. Phân rã Array - Hoán đổi trong một nốt nhạc
Với mảng (Array), Destructuring hoạt động dựa trên thứ tự phần tử. Thay vì phải nhớ chỉ số [0], [1], bạn có thể đặt tên trực tiếp cho chúng. Một trong những ứng dụng "vi diệu" nhất của kỹ thuật này chính là hoán đổi (swap) giá trị hai biến mà không cần dùng đến biến trung gian temp.
let a = 'UI';
let b = 'UX';
// Hoán đổi vị trí
[a, b] = [b, a];
console.log(a); // 'UX'
console.log(b); // 'UI'Bạn cũng có thể bỏ qua các phần tử không cần thiết bằng cách để trống giữa các dấu phẩy. Việc này giúp bạn tập trung vào đúng phần dữ liệu quan trọng mà không làm rối bộ nhớ. Nếu bạn đang sử dụng Zod để kiểm chứng dữ liệu, việc kết hợp với Destructuring sẽ giúp flow code của bạn cực kỳ chặt chẽ và an toàn.
3. Tham số hàm - Truyền Object gọn như kẻ chỉ
Đây có lẽ là nơi mà JavaScript Destructuring thể hiện sức mạnh rõ rệt nhất. Thay vì truyền một dãy tham số dài dằng dặc (mà bạn buộc phải nhớ đúng thứ tự), hãy truyền một Object và bóc tách nó ngay tại chữ ký của hàm (function signature).
// Cách cũ: function displayProfile(name, age, city) { ... }
// Cách hiện đại:
function displayProfile({ name, age, city = 'Sài Gòn' }) {
console.log(`${name} - ${age} tuổi, đến từ ${city}`);
}
const student = { name: 'Thành', age: 22 };
displayProfile(student); // Thành - 22 tuổi, đến từ Sài GònCách làm này giúp bạn không bao giờ lo lắng về việc truyền nhầm thứ tự tham số. Hơn nữa, nó giúp hàm của bạn dễ mở rộng hơn trong tương lai—chỉ cần thêm thuộc tính vào Object mà không làm gãy các lời gọi hàm cũ.
Tại sao bạn nên tập dùng Destructuring ngay hôm nay?
- Code ngắn hơn: Giảm thiểu những dòng khai báo biến lặp đi lặp lại.
- Dễ đọc hơn: Nhìn vào dòng bóc tách, người khác biết ngay hàm/đoạn code đó đang dùng những dữ liệu gì.
- An toàn hơn: Kết hợp với giá trị mặc định giúp tránh lỗi
undefinedlàm sập ứng dụng.
Thực tế, các thư viện hiện đại như React hay Next.js đều dùng Destructuring ở khắp mọi nơi (từ props đến state). Nếu không nắm vững nó, bạn sẽ thấy cực kỳ khó khăn khi đọc code của các tiền bối đấy. Bạn đã sẵn sàng để "refactor" lại dự án cũ của mình bằng kỹ thuật này chưa?
Hành trình làm chủ JavaScript không chỉ dừng lại ở cú pháp, mà còn là cách bạn tổ chức logic sao cho thông minh nhất. Hãy ghé qua DIA DEMY để khám phá thêm nhiều bí kíp Frontend thực chiến khác nhé!



Vui lòng đăng nhập để bình luận.