0
0
Lập trình
TT

Top 5 Tính Năng Mới Đáng Chú Ý Của JavaScript Trong Phiên Bản ES15 (2024)

Đăng vào 2 tuần trước

• 3 phút đọc

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 Copy
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à:

Copy
{
  '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 Copy
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 Copy
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 Copy
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 Copy
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 Copy
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 Copy
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

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào