مقدمه

نسخه جدید استاندارد ECMAScript یعنی ES2024 یا ECMAScript 2024 در ادامه تلاش جامعه TC39 برای توسعه پایدار و پیشرفته‌تر جاوااسکریپت منتشر شده است. این نسخه شامل چند ویژگی کلیدی و مورد انتظار توسعه‌دهندگان بوده که کدنویسی را ساده‌تر و بهینه‌تر می‌سازد.

در این مقاله، نگاهی می‌اندازیم به مهم‌ترین ویژگی‌های جدید ES2024.


۱. Set Methods

جاوااسکریپت حالا از متدهای مقایسه‌ای برای Set پشتیبانی می‌کند:

const a = new Set([1, 2, 3]);
const b = new Set([3, 4, 5]);

const union = new Set([...a, ...b]);
const intersection = new Set([...a].filter(x => b.has(x)));

این موارد حالا به‌صورت رسمی با متدهایی مثل Set.prototype.union()، intersection() و difference() تعریف شده‌اند.


۲. .at() برای TypedArray

متد at() حالا روی TypedArrayها مانند Uint8Array, Float64Array و ... هم پشتیبانی می‌شود:

const bytes = new Uint8Array([10, 20, 30]);
console.log(bytes.at(-1)); // 30

۳. .toSorted() و .with() برای TypedArray

متدهایی که در ES2023 برای آرایه‌ها معرفی شدند، حالا به TypedArray‌ها هم گسترش داده شده‌اند:

const numbers = new Uint16Array([5, 2, 8]);
const sorted = numbers.toSorted();
console.log(sorted); // Uint16Array(3) [2, 5, 8]

۴. Decorators

بعد از مدت‌ها بحث و توسعه، Decoratorها به‌صورت رسمی به زبان اضافه شده‌اند و می‌توان آن‌ها را برای تعریف ویژگی‌های متادیتا، لاگ‌گیری و موارد دیگر روی کلاس‌ها استفاده کرد:

function log(target, key, descriptor) {
  const original = descriptor.value;
  descriptor.value = function(...args) {
    console.log(`Called ${key} with`, args);
    return original.apply(this, args);
  };
  return descriptor;
}

class User {
  @log
  sayHi(name) {
    return `Hello ${name}`;
  }
}

نتیجه‌گیری

ES2024 گامی دیگر در جهت مدرن‌سازی جاوااسکریپت است. پشتیبانی بهتر از ساختارهای داده، قابلیت‌های بیشتر برای تایپ‌د-آرایه‌ها و اضافه شدن Decoratorها، امکانات قدرتمندی را در اختیار توسعه‌دهندگان قرار می‌دهد.