Khám Phá 5 Tính Năng JavaScript Mới Nổi Bật Trong ES15 (2024)
Chào mừng các bạn đến với những nâng cấp mới mẻ trong JavaScript phiên bản ES15! Năm 2024 hứa hẹn mang đến cho lập trình viên những trải nghiệm lập trình thú vị và hiệu quả hơn bao giờ hết. Bài viết này sẽ trình bày 5 tính năng nổi bật mà bạn không nên bỏ qua.
1. Tính Năng Object.groupBy()
- Nhóm Dữ Liệu Nhanh Chóng
JavaScript giờ đây đã tích hợp tính năng Object.groupBy()
, giúp bạn dễ dàng nhóm các đối tượng trong mảng mà không cần sử dụng thư viện bên ngoài như Lodash nữa.
javascript
const people = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 },
{ name: 'Jim', age: 25 },
{ name: 'Jill', age: 30 }
];
const groupedByAge = Object.groupBy(people, person => person.age);
console.log(groupedByAge);
Kết quả sẽ là:
{
'25': [ { name: 'John', age: 25 }, { name: 'Jim', age: 25 } ],
'30': [ { name: 'Jane', age: 30 }, { name: 'Jill', age: 30 } ]
}
Tính năng này mang lại sự tiện lợi cho việc xử lý dữ liệu, giúp code trở nên ngắn gọn và dễ hiểu hơn.
2. Tính Năng Promise.withResolvers()
- Giải Quyết Promise Từ Bên Ngoài
Với thông tin mới, giờ bạn có thể giải quyết một Promise
từ bên ngoài mà không cần tới class Deferred
. Cú pháp đơn giản hơn rất nhiều:
javascript
const [promise, resolve, reject] = Promise.withResolvers();
resolve(42);
Dưới đây là một ví dụ minh họa cách chuyển đổi một sự kiện thành promise:
javascript
async function waitForClick() {
const [promise, resolve] = Promise.withResolvers();
document.addEventListener('click', resolve, { once: true });
return promise;
}
const clickEvent = await waitForClick();
console.log('Clicked!', clickEvent);
3. Nâng Cấp Buffer - Hiệu Suất Tăng Cường
Khi xử lý dữ liệu lớn, tính năng mới về buffer sẽ rất hữu ích. Bạn có thể tạo và thay đổi kích thước buffer mà không cần phải sao chép dữ liệu, điều này giúp cải thiện hiệu suất đáng kể.
javascript
const buffer = new ArrayBuffer(1024); // Tạo buffer 1KB
buffer.resize(2048); // Tăng kích thước lên 2KB
4. Tính Năng Bất Đồng Bộ Mới với Atomics.waitAsync()
Atomics.waitAsync()
giúp bạn dễ dàng quản lý các tác vụ bất đồng bộ giữa nhiều agent.
javascript
const sharedBuffer = new SharedArrayBuffer(1024);
const sharedArray = new Int32Array(sharedBuffer);
async function waitForSignal() {
await Atomics.waitAsync(sharedArray, 0, 0);
console.log('Signal received!');
}
function sendSignal() {
Atomics.store(sharedArray, 0, 1);
Atomics.notify(sharedArray, 0, 1);
}
setTimeout(sendSignal, 1000);
Nhờ đó, nhiều agent có thể tương tác và lắng nghe tín hiệu từ cùng một buffer, điều này tạo ra sự linh hoạt trong lập trình.
5. Cải Tiến Regex - Cờ v
và Các Phép Toán Tập Hợp
Với những cập nhật mới, regex trong JavaScript trở nên mạnh mẽ và trực quan hơn. Bạn có thể sử dụng cờ v
để xử lý các mẫu biểu thức phức tạp:
javascript
const pattern = /[a-z&&[^aeiou]]/v;
console.log(pattern.test('b')); // true
console.log(pattern.test('a')); // false
Ngoài ra, bạn cũng có thể khớp với tất cả các ký tự Unicode bằng cách sử dụng regex và cờ v
:
javascript
const greekLetters = /\p{Script=Greek}/v;
console.log(greekLetters.test('α')); // true
console.log(greekLetters.test('a')); // false
Kết Luận
Những sự cải tiến trong ES15 thật sự là một bước ngoặt quan trọng cho ngôn ngữ JavaScript. Từ việc xử lý Buffer đến những cải tiến về bất đồng bộ và regex, các tính năng này sẽ giúp lập trình viên nâng cao hiệu suất và dễ dàng hơn trong quá trình phát triển. Hãy chuẩn bị chào đón kỷ nguyên mới của JavaScript trong năm 2024 và tối ưu hóa mã nguồn của bạn với những công cụ mới mẻ này!
Đừng quên chia sẻ và theo dõi để cập nhật thêm nhiều thông tin hữu ích về lập trình nhé! Chúc các bạn lập trình vui vẻ!
source: viblo