Giới Thiệu
JavaScript là một ngôn ngữ lập trình mạnh mẽ, liên tục phát triển với nhiều tính năng hữu ích giúp việc viết mã trở nên hiệu quả và dễ dàng hơn. Tuy nhiên, nhiều lập trình viên vẫn chưa khai thác được hết sức mạnh của các tính năng này. Trong bài viết này, chúng ta sẽ cùng khám phá 5 tính năng JavaScript hữu ích mà có thể bạn chưa từng sử dụng triệt để.
1. Chuỗi Tùy Chọn (?.)
Toán tử chuỗi tùy chọn (?.
) là một cách tiếp cận thông minh giúp đơn giản hóa việc kiểm tra các thuộc tính của đối tượng lồng nhau. Thay vì phải sử dụng nhiều câu lệnh if
, giờ đây bạn có thể truy cập thuộc tính một cách dễ dàng mà không lo gặp lỗi khi thuộc tính không tồn tại. Nếu thuộc tính không có, nó sẽ trả về undefined
mà không gây ra lỗi trong mã.
Ví dụ:
javascript
const user = {
name: 'John',
address: {
city: 'New York'
}
};
// Không sử dụng Chuỗi Tùy Chọn
const city = user && user.address ? user.address.city : undefined;
// Sử dụng Chuỗi Tùy Chọn
const city = user?.address?.city;
console.log(city); // 'New York'
2. Toán Tử Hợp Nhất Nullish (??)
Toán tử hợp nhất null (??
) là lựa chọn lý tưởng hơn so với toán tử ||
khi cung cấp giá trị mặc định. Nó chỉ xem null
và undefined
là những giá trị trống, do đó tránh được những vấn đề phát sinh từ việc coi các giá trị như false
, 0
, hoặc chuỗi rỗng là giá trị không hợp lệ.
Ví dụ:
javascript
const input = 0;
// Sử dụng OR (||)
const value = input || 10; // 10 (không mong muốn)
// Sử dụng Hợp Nhất Null (??)
const value = input ?? 10; // 0 (mong muốn)
console.log(value);
3. Nhập Động (Dynamic Imports)
Tính năng Nhập Động cho phép bạn tải các module JavaScript khi cần thiết, đặc biệt hữu ích trong các ứng dụng lớn khi tối ưu hiệu suất cho quá trình tải trang. Điều này giúp bạn chia mã thành các phần nhỏ hơn, chỉ tải module khi thực sự cần.
Ví dụ:
javascript
if (user.isAdmin) {
import('./adminPanel.js').then(module => {
module.loadAdminPanel();
});
}
4. Promise.allSettled
Promise.allSettled
là một công cụ hữu ích khi làm việc với nhiều promise. Tính năng này cho phép bạn nhận biết kết quả của từng promise, dù chúng có thành công hay thất bại. Khác với Promise.all
, tính năng này cung cấp thông tin tổng quan cho tất cả các promise mà không dừng lại khi gặp lỗi đầu tiên.
Ví dụ:
javascript
const promises = [
Promise.resolve('Success'),
Promise.reject('Error'),
Promise.resolve('Another success')
];
Promise.allSettled(promises).then(results => {
results.forEach(result => {
if (result.status === 'fulfilled') {
console.log('Fulfilled:', result.value);
} else {
console.log('Rejected:', result.reason);
}
});
});
5. Toán Tử Gán Logic (&&=, ||=, ??=)
Các toán tử gán logic viết tắt như &&=
, ||=
, và ??=
giúp giảm thiểu độ dài mã và làm cho mã trở nên gọn gàng hơn. Chúng kết hợp các phép toán logic với phép gán.
Ví dụ:
javascript
let user = {
isLoggedIn: false,
preferences: null
};
// Sử dụng Toán Tử Gán Logic
user.isLoggedIn ||= true; // Đặt thành true nếu trước đó là false hoặc undefined
user.preferences ??= { theme: 'dark' }; // Đặt nếu là null hoặc undefined
console.log(user);
// { isLoggedIn: true, preferences: { theme: 'dark' } }
Kết Luận
Những tính năng JavaScript hiện đại này không chỉ giúp mã nguồn của bạn trở nên sạch sẽ hơn mà còn nâng cao tính an toàn và hiệu quả. Nếu bạn chưa áp dụng những tính năng này vào công việc hàng ngày, hãy bắt đầu ngay hôm nay để cải thiện kỹ năng lập trình của mình.
Cảm ơn bạn đã đọc bài viết này! Hãy chia sẻ nếu bạn thấy thông tin hữu ích.
source: viblo